// 该文件定义了TapTradeAPI 使用的数据类型和数据结构
#ifndef ITAP_TRADE_API_DATA_TYPE_H
#define ITAP_TRADE_API_DATA_TYPE_H
#include "iTapAPICommDef.h"

namespace ITapTrade {
#pragma pack(push, 1)

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_TAPIACCOUNTTYPE	账号类型
 *	@{
 */
//=============================================================================
//! 账号类型
typedef TAPICHAR TAPIAccountType;
//! 个人客户
const TAPIAccountType TAPI_ACCOUNT_TYPE_PERSON = 'P';
//! 机构客户
const TAPIAccountType TAPI_ACCOUNT_TYPE_ORGANIZATION = 'O';
//! 代理人
const TAPIAccountType TAPI_ACCOUNT_TYPE_AGENT = 'A';
//! Margin
const TAPIAccountType TAPI_ACCOUNT_TYPE_MARGIN = 'M';
//! Internal
const TAPIAccountType TAPI_ACCOUNT_TYPE_HOUSE = 'H';
//! 股票账户
const TAPIAccountType TAPI_ACCOUNT_TYPE_STOCK = 'S';
/** @}*/

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_TAPIRIGHTIDTYPE	权限编码类型
 *	@{
 */
//=============================================================================
//! 权限编码类型
typedef TAPIINT32 TAPIRightIDType;
/** @}*/

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_TAPIUSERTYPETYPE	登录用户身份类型
 *	@{
 */
//=============================================================================
//! 登录用户身份类型
typedef TAPIINT32 TAPIUserTypeType;
//! 投资者用户
const TAPIUserTypeType TAPI_USERTYPE_CLIENT = 10000;
//! 经纪人
const TAPIUserTypeType TAPI_USERTYPE_BROKER = 20000;
//! 交易员
const TAPIUserTypeType TAPI_USERTYPE_TRADER = 30000;
//! 风控
const TAPIUserTypeType TAPI_USERTYPE_RISK = 40000;
//! 管理员
const TAPIUserTypeType TAPI_USERTYPE_MANAGER = 50000;
//! 行情
const TAPIUserTypeType TAPI_USERTYPE_QUOTE = 60000;
/** @}*/

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_TAPIACCOUNTSTATE	账号状态
 *	@{
 */
//=============================================================================
//! 账号状态
typedef TAPICHAR TAPIAccountState;
//! 正常
const TAPIAccountState TAPI_ACCOUNT_STATE_NORMAL = 'N';
//! 销户
const TAPIAccountState TAPI_ACCOUNT_STATE_CANCEL = 'C';
//! 休眠
const TAPIAccountState TAPI_ACCOUNT_STATE_SLEEP = 'S';
// ！冻结
const TAPIAccountState TAPI_ACCOUNT_STATE_FROZEN = 'F';
/** @}*/

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_TAPIACCOUNTRIGHTTYPE	账户交易状态
 *	@{
 */
//=============================================================================
//! 客户交易状态类型
typedef TAPICHAR TAPIAccountRightType;
//! 正常交易
const TAPIAccountRightType TAPI_ACCOUNT_TRADING_RIGHT_NORMAL = '0';
//! 禁止交易
const TAPIAccountRightType TAPI_ACCOUNT_TRADING_RIGHT_NOTRADE = '1';
//! 只可平仓
const TAPIAccountRightType TAPI_ACCOUNT_TRADING_RIGHT_CLOSE = '2';
/** @}*/

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_TAPIORDERTYPETYPE	委托类型
 *	@{
 */
//=============================================================================
//! 委托类型
typedef TAPICHAR TAPIOrderTypeType;
//! 市价
const TAPIOrderTypeType TAPI_ORDER_TYPE_MARKET = '1';
//! 限价
const TAPIOrderTypeType TAPI_ORDER_TYPE_LIMIT = '2';
//! 市价止损
const TAPIOrderTypeType TAPI_ORDER_TYPE_STOP_MARKET = '3';
//! 限价止损
const TAPIOrderTypeType TAPI_ORDER_TYPE_STOP_LIMIT = '4';
//! 期权行权
const TAPIOrderTypeType TAPI_ORDER_TYPE_OPT_EXEC = '5';
//! 期权弃权
const TAPIOrderTypeType TAPI_ORDER_TYPE_OPT_ABANDON = '6';
//! 询价
const TAPIOrderTypeType TAPI_ORDER_TYPE_REQQUOT = '7';
//! 应价
const TAPIOrderTypeType TAPI_ORDER_TYPE_RSPQUOT = '8';
//! 冰山单
const TAPIOrderTypeType TAPI_ORDER_TYPE_ICEBERG = '9';
//! 影子单
const TAPIOrderTypeType TAPI_ORDER_TYPE_GHOST = 'A';
//! 港交所竞价单
const TAPIOrderTypeType TAPI_ORDER_TYPE_HKEX_AUCTION = 'B';
//! 互换
const TAPIOrderTypeType TAPI_ORDER_TYPE_SWAP = 'C';
//! 证券锁定
const TAPIOrderTypeType TAPI_ORDER_TYPE_LOCK = 'D';
//! 证券解锁
const TAPIOrderTypeType TAPI_ORDER_TYPE_UNLOCK = 'E';
//! 增强限价单
const TAPIOrderTypeType TAPI_ORDER_TYPE_ENHANCE = 'F';
//! 特别限价单
const TAPIOrderTypeType TAPI_ORDER_TYPE_SPECIAL = 'G';
//! 竞价限价单
const TAPIOrderTypeType TAPI_ORDER_TYPE_LIMITAUCTION = 'H';

/** @}*/

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_TAPIORDERSOURCETYPE	委托来源
 *	@{
 */
//=============================================================================
//! 委托来源
typedef TAPICHAR TAPIOrderSourceType;
//! 自助电子单
const TAPIOrderSourceType TAPI_ORDER_SOURCE_SELF_ETRADER = '1';
//! 代理电子单
const TAPIOrderSourceType TAPI_ORDER_SOURCE_PROXY_ETRADER = '2';
//! 外部电子单(外部电子系统下单，本系统录入)
const TAPIOrderSourceType TAPI_ORDER_SOURCE_JTRADER = '3';
//! 人工录入单(外部其他方式下单，本系统录入)
const TAPIOrderSourceType TAPI_ORDER_SOURCE_MANUAL = '4';
//! carry单
const TAPIOrderSourceType TAPI_ORDER_SOURCE_CARRY = '5';
//! 程式化报单
const TAPIOrderSourceType TAPI_ORDER_SOURCE_PROGRAM = '6';
//! 交割行权
const TAPIOrderSourceType TAPI_ORDER_SOURCE_DELIVERY = '7';
//! 期权放弃
const TAPIOrderSourceType TAPI_ORDER_SOURCE_ABANDON = '8';
//! 通道费
const TAPIOrderSourceType TAPI_ORDER_SOURCE_CHANNEL = '9';
//! 临时成交
const TAPIOrderSourceType TAPI_ORDER_SOURCE_TEMPORARY = 'J';
//! 程序化手工单
const TAPIOrderSourceType TAPI_ORDER_SOURCE_PROGRAMMANUAL = 'K';
/** @}*/

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_TAPITIMEINFORCETYPE	委托有效类型
 *	@{
 */
//=============================================================================
//! 委托有效类型
typedef TAPICHAR TAPITimeInForceType;
//! 当日有效
const TAPITimeInForceType TAPI_ORDER_TIMEINFORCE_GFD = '0';
//! 取消前有效
const TAPITimeInForceType TAPI_ORDER_TIMEINFORCE_GTC = '1';
//! 指定日期前有效
const TAPITimeInForceType TAPI_ORDER_TIMEINFORCE_GTD = '2';
//! FAK或IOC
const TAPITimeInForceType TAPI_ORDER_TIMEINFORCE_FAK = '3';
//! FOK
const TAPITimeInForceType TAPI_ORDER_TIMEINFORCE_FOK = '4';
/** @}*/

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_TAPISIDETYPE	买卖类型
 *	@{
 */
//=============================================================================
//! 买卖类型
typedef TAPICHAR TAPISideType;
//! 无
const TAPISideType TAPI_SIDE_NONE = 'N';
//! 买入
const TAPISideType TAPI_SIDE_BUY = 'B';
//! 卖出
const TAPISideType TAPI_SIDE_SELL = 'S';
/** @}*/

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_TAPIPOSITIONEFFECTTYPE	开平类型
 *	@{
 */
//=============================================================================
//! 开平类型
typedef TAPICHAR TAPIPositionEffectType;
//! 不分开平
const TAPIPositionEffectType TAPI_PositionEffect_NONE = 'N';
//! 开仓
const TAPIPositionEffectType TAPI_PositionEffect_OPEN = 'O';
//! 平仓
const TAPIPositionEffectType TAPI_PositionEffect_COVER = 'C';
//! 平当日
const TAPIPositionEffectType TAPI_PositionEffect_COVER_TODAY = 'T';
/** @}*/

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_TAPIHEDGEFLAGTYPE	投机保值类型
 *	@{
 */
//=============================================================================
//! 投机保值类型
typedef TAPICHAR TAPIHedgeFlagType;
//! 无
const TAPIHedgeFlagType TAPI_HEDGEFLAG_NONE = 'N';
//! 投机
const TAPIHedgeFlagType TAPI_HEDGEFLAG_T = 'T';
//! 保值
const TAPIHedgeFlagType TAPI_HEDGEFLAG_B = 'B';
//! 备兑
const TAPIHedgeFlagType TAPI_HEDGEFLAG_R = 'R';

/** @}*/
//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_TAPIORDERSTATETYPE	委托状态类型
 *	@{
 */
//=============================================================================
//! 委托状态类型
// ！未结束的委托类型：01234578D
typedef TAPICHAR TAPIOrderStateType;
//! 终端提交
const TAPIOrderStateType TAPI_ORDER_STATE_SUBMIT = '0';
//! 已受理
const TAPIOrderStateType TAPI_ORDER_STATE_ACCEPT = '1';
//! 策略待触发
const TAPIOrderStateType TAPI_ORDER_STATE_TRIGGERING = '2';
//! 交易所待触发
const TAPIOrderStateType TAPI_ORDER_STATE_EXCTRIGGERING = '3';
//! 已排队
const TAPIOrderStateType TAPI_ORDER_STATE_QUEUED = '4';
//! 部分成交
const TAPIOrderStateType TAPI_ORDER_STATE_PARTFINISHED = '5';
//! 完全成交
const TAPIOrderStateType TAPI_ORDER_STATE_FINISHED = '6';
//! 待撤消(排队临时状态)
const TAPIOrderStateType TAPI_ORDER_STATE_CANCELING = '7';
//! 待修改(排队临时状态)
const TAPIOrderStateType TAPI_ORDER_STATE_MODIFYING = '8';
//! 完全撤单
const TAPIOrderStateType TAPI_ORDER_STATE_CANCELED = '9';
//! 已撤余单
const TAPIOrderStateType TAPI_ORDER_STATE_LEFTDELETED = 'A';
//! 指令失败
const TAPIOrderStateType TAPI_ORDER_STATE_FAIL = 'B';
//! 策略删除
const TAPIOrderStateType TAPI_ORDER_STATE_DELETED = 'C';
//! 已挂起
const TAPIOrderStateType TAPI_ORDER_STATE_SUPPENDED = 'D';
//! 到期删除
const TAPIOrderStateType TAPI_ORDER_STATE_DELETEDFOREXPIRE = 'E';
//! 已生效——询价成功
const TAPIOrderStateType TAPI_ORDER_STATE_EFFECT = 'F';
//! 已申请——行权、弃权、套利等申请成功
const TAPIOrderStateType TAPI_ORDER_STATE_APPLY = 'G';
/** @}*/

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_TAPICALCULATEMODETYPE	计算方式
 *	@{
 */
//=============================================================================
//! 计算方式
typedef TAPICHAR TAPICalculateModeType;

//! 比例+定额（仅限手续费）大于0.01部分为定额，小于0.01部分为比例，如：0.001为比例收取0.1%。
const TAPICalculateModeType TAPI_CALULATE_MODE_COMBINE = '0';
//! 比例
const TAPICalculateModeType TAPI_CALCULATE_MODE_PERCENTAGE = '1';
//! 定额
const TAPICalculateModeType TAPI_CALCULATE_MODE_QUOTA = '2';
//! 差值比例
const TAPICalculateModeType TAPI_CALCULATE_MODE_CHAPERCENTAGE = '3';
//! 差值定额
const TAPICalculateModeType TAPI_CALCULATE_MODE_CHAQUOTA = '4';
//! 折扣
const TAPICalculateModeType TAPI_CALCULATE_MODE_DISCOUNT = '5';
/** @}*/

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_TAPIMATCHSOURCETYPE	成交来源
 *	@{
 */
//=============================================================================
//! 成交来源
typedef TAPICHAR TAPIMatchSourceType;
//! 全部
const TAPIMatchSourceType TAPI_MATCH_SOURCE_ALL = '0';
//! 自助电子单
const TAPIMatchSourceType TAPI_MATCH_SOURCE_SELF_ETRADER = '1';
//! 代理电子单
const TAPIMatchSourceType TAPI_MATCH_SOURCE_PROXY_ETRADER = '2';
//! 外部电子单
const TAPIMatchSourceType TAPI_MATCH_SOURCE_JTRADER = '3';
//! 人工录入单
const TAPIMatchSourceType TAPI_MATCH_SOURCE_MANUAL = '4';
//! carry单
const TAPIMatchSourceType TAPI_MATCH_SOURCE_CARRY = '5';
//! 程式化单
const TAPIMatchSourceType TAPI_MATCH_SOURCE_PROGRAM = '6';
//! 交割行权
const TAPIMatchSourceType TAPI_MATCH_SOURCE_DELIVERY = '7';
//! 期权放弃
const TAPIMatchSourceType TAPI_MATCH_SOURCE_ABANDON = '8';
//! 通道费
const TAPIMatchSourceType TAPI_MATCH_SOURCE_CHANNEL = '9';
//! Bloomberg下单
const TAPIMatchSourceType TAPI_MATCH_SOURCE_BLOOMBERG = 'B';
//! 自助手机单
const TAPIMatchSourceType TAPI_MATCH_SOURCE_AUTOPHONE = 'A';
//! GiveUp成交
const TAPIMatchSourceType TAPI_MATCH_SOURCE_GIVEUP = 'C';
//! 行权成交
const TAPIMatchSourceType TAPI_MATCH_SOURCE_EXERCISE = 'E';
//! TakeUp成交
const TAPIMatchSourceType TAPI_MATCH_SOURCE_TAKEUP = 'D';
//! 订单转移的成交删除
const TAPIMatchSourceType TAPI_MATCH_SOURCE_INPUT_DELETE = '#';
//! 错单调整
const TAPIMatchSourceType TAPI_MATCH_SOURCE_ERRORADJUST = 'F';
//! 经纪电子单
const TAPIMatchSourceType TAPI_MATCH_SOURCE_BROKER_ETRADER = 'G';
//! 临时成交
const TAPIMatchSourceType TAPI_MATCH_SOURCE_TEMPORARY = 'J';
//! 程序化手工单
const TAPIMatchSourceType TAPI_MATCH_SOURCE_PROGRAMMANUAL = 'K';

/** @}*/

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_TAPIOPENCLOSEMODETYPE	开平方式
 *	@{
 */
//=============================================================================
//! 开平方式
typedef TAPICHAR TAPIOpenCloseModeType;
//! 不区分开平
const TAPIOpenCloseModeType TAPI_CLOSE_MODE_NONE = 'N';
//! 平仓未了结
const TAPIOpenCloseModeType TAPI_CLOSE_MODE_UNFINISHED = 'U';
//! 区分开仓和平仓
const TAPIOpenCloseModeType TAPI_CLOSE_MODE_OPENCOVER = 'C';
//! 区分开仓、平仓和平今
const TAPIOpenCloseModeType TAPI_CLOSE_MODE_CLOSETODAY = 'T';
/** @}*/

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_TAPIFUTUREALGTYPE	币种组资金是否共享
 *	@{
 */
//=============================================================================
//! 币种组资金是否共享
typedef TAPICHAR TAPIFutureAlgType;
//! 独立
const TAPIFutureAlgType TAPI_FUTURES_ALG_ZHUBI = 'Y';
//! 不独立
const TAPIFutureAlgType TAPI_FUTURES_ALG_DINGSHI = 'N';

/** @}*/

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_TAPIOPTIONALGTYPE	是否是基币
 *	@{
 */
//=============================================================================
//! 是否是基币
typedef TAPICHAR TAPIOptionAlgType;
//! 是基币
const TAPIOptionAlgType TAPI_OPTION_ALG_FUTURES = '1';
//! 不是基币
const TAPIOptionAlgType TAPI_OPTION_ALG_OPTION = '2';
/** @}*/

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_TAPIBANKACCOUNTLWFLAGTYPE	本外币标识
 *	@{
 */
//=============================================================================
//! 本外币标识
typedef TAPICHAR TAPIBankAccountLWFlagType;
//! 境内人民币账户
const TAPIBankAccountLWFlagType TAPI_LWFlag_L = 'L';
//! 客户境内外币账户
const TAPIBankAccountLWFlagType TAPI_LWFlag_W = 'W';
/** @}*/

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_TAPICASHADJUSTTYPETYPE	资金调整类型
 *	@{
 */
//=============================================================================
//! 资金调整类型
typedef TAPICHAR TAPICashAdjustTypeType;
//! 手续费调整
const TAPICashAdjustTypeType TAPI_CASHINOUT_MODE_FEEADJUST = '0';
//! 盈亏调整
const TAPICashAdjustTypeType TAPI_CASHINOUT_MODE_YKADJUST = '1';
//! 质押资金
const TAPICashAdjustTypeType TAPI_CASHINOUT_MODE_PLEDGE = '2';
//! 利息收入
const TAPICashAdjustTypeType TAPI_CASHINOUT_MODE_INTERESTREVENUE = '3';
//! 代扣费用
const TAPICashAdjustTypeType TAPI_CASHINOUT_MODE_COLLECTIONCOST = '4';
//! 其它
const TAPICashAdjustTypeType TAPI_CASHINOUT_MODE_OTHER = '5';
//! 公司间拨账
const TAPICashAdjustTypeType TAPI_CASHINOUT_MODE_COMPANY = '6';
/** @}*/

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_TAPIMARGINCALCULATEMODETYPE	期货保证金方式
 *	@{
 */
//=============================================================================
//! 期货保证金方式
typedef TAPICHAR TAPIMarginCalculateModeType;
//! 分笔
const TAPIMarginCalculateModeType TAPI_DEPOSITCALCULATE_MODE_FEN = '1';
//! 锁仓
const TAPIMarginCalculateModeType TAPI_DEPOSITCALCULATE_MODE_SUO = '2';
/** @}*/

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_TAPIOPTIONMARGINCALCULATEMODETYPE	期权保证金公式
 *	@{
 */
//=============================================================================
//! 期权保证金公式,据此判断该品种期权采用何种内置计算公式计算保证金
typedef TAPICHAR TAPIOptionMarginCalculateModeType;
/** @}*/

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_TAPICMBDIRECTTYPE	组合方向
 *	@{
 */
//=============================================================================
//! 组合方向,品种两腿组合合约的买卖方向和第几腿相同
typedef TAPICHAR TAPICmbDirectType;
//! 和第一腿一致
const TAPICmbDirectType TAPI_CMB_DIRECT_FIRST = '1';
//! 和第二腿一致
const TAPICmbDirectType TAPI_CMB_DIRECT_SECOND = '2';
/** @}*/

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_TAPIDELIVERYMODETYPE	交割行权方式
 *	@{
 */
//=============================================================================
//! 交割行权方式,期货和期权了结的方式
typedef TAPICHAR TAPIDeliveryModeType;
//! 实物交割
const TAPIDeliveryModeType TAPI_DELIVERY_MODE_GOODS = 'G';
//! 现金交割
const TAPIDeliveryModeType TAPI_DELIVERY_MODE_CASH = 'C';
//! 期权行权
const TAPIDeliveryModeType TAPI_DELIVERY_MODE_EXECUTE = 'E';
//! 期权放弃
const TAPIDeliveryModeType TAPI_DELIVERY_MODE_ABANDON = 'A';
//! 港交所行权
const TAPIDeliveryModeType TAPI_DELIVERY_MODE_HKF = 'H';
/** @}*/

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_TAPICONTRACTTYPETYPE	合约类型
 *	@{
 */
//=============================================================================
//! 合约类型
typedef TAPICHAR TAPIContractTypeType;
//! 交易行情合约
const TAPIContractTypeType TAPI_CONTRACT_TYPE_TRADEQUOTE = '1';
//! 行情合约
const TAPIContractTypeType TAPI_CONTRACT_TYPE_QUOTE = '2';
/** @}*/

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_TAPITACTICSTYPETYPE	策略单类型
 *	@{
 */
//=============================================================================
//! 策略单类型
typedef TAPICHAR TAPITacticsTypeType;
//! 无
const TAPITacticsTypeType TAPI_TACTICS_TYPE_NONE = 'N';
//! 预备单(埋单)
const TAPITacticsTypeType TAPI_TACTICS_TYPE_READY = 'M';
//! 自动单
const TAPITacticsTypeType TAPI_TACTICS_TYPE_ATUO = 'A';
//! 条件单
const TAPITacticsTypeType TAPI_TACTICS_TYPE_CONDITION = 'C';
/** @}*/

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_TAPIORDERACT	订单操作类型
 *	@{
 */
//=============================================================================
//! 订单操作类型
typedef TAPICHAR TAPIORDERACT;
//! 报单
const TAPIORDERACT APIORDER_INSERT = '1';
//! 改单
const TAPIORDERACT APIORDER_MODIFY = '2';
//! 撤单
const TAPIORDERACT APIORDER_DELETE = '3';
//! 挂起
const TAPIORDERACT APIORDER_SUSPEND = '4';
//! 激活
const TAPIORDERACT APIORDER_ACTIVATE = '5';
//! 删除
const TAPIORDERACT APIORDER_SYSTEM_DELETE = '6';
/** @}*/

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_TAPITRIGGERCONDITIONTYPE	触发条件类型
 *	@{
 */
//=============================================================================
//! 触发条件类型
typedef TAPICHAR TAPITriggerConditionType;
//! 无
const TAPITriggerConditionType TAPI_TRIGGER_CONDITION_NONE = 'N';
//! 大于等于
const TAPITriggerConditionType TAPI_TRIGGER_CONDITION_GREAT = 'G';
//! 小于等于
const TAPITriggerConditionType TAPI_TRIGGER_CONDITION_LITTLE = 'L';
/** @}*/

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_TAPITRIGGERPRICETYPETYPE	触发价格类型
 *	@{
 */
//=============================================================================
//! 触发价格类型
typedef TAPICHAR TAPITriggerPriceTypeType;
//! 无
const TAPITriggerPriceTypeType TAPI_TRIGGER_PRICE_NONE = 'N';
//! 买价
const TAPITriggerPriceTypeType TAPI_TRIGGER_PRICE_BUY = 'B';
//! 卖价
const TAPITriggerPriceTypeType TAPI_TRIGGER_PRICE_SELL = 'S';
//! 最新价
const TAPITriggerPriceTypeType TAPI_TRIGGER_PRICE_LAST = 'L';
/** @}*/

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_TAPITRADINGSTATETYPE	交易状态
 *	@{
 */
//=============================================================================
//! 交易状态
typedef TAPICHAR TAPITradingStateType;
//! 集合竞价
const TAPITradingStateType TAPI_TRADE_STATE_BID = '1';
//! 集合竞价撮合
const TAPITradingStateType TAPI_TRADE_STATE_MATCH = '2';
//! 连续交易
const TAPITradingStateType TAPI_TRADE_STATE_CONTINUOUS = '3';
//! 交易暂停
const TAPITradingStateType TAPI_TRADE_STATE_PAUSED = '4';
//! 闭市
const TAPITradingStateType TAPI_TRADE_STATE_CLOSE = '5';
//! 闭市处理时间
const TAPITradingStateType TAPI_TRADE_STATE_DEALLAST = '6';
//! 网关未连
const TAPITradingStateType TAPI_TRADE_STATE_GWDISCONNECT = '0';
//! 未知状态
const TAPITradingStateType TAPI_TRADE_STATE_UNKNOWN = 'N';
//! 正初始化
const TAPITradingStateType TAPI_TRADE_STATE_INITIALIZE = 'I';
//! 准备就绪
const TAPITradingStateType TAPI_TRADE_STATE_READY = 'R';
/** @}*/

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_TAPINOTICEIGNOREFLAGTYPE	忽略后台推送通知标记
 *	@{
 */
//=============================================================================
//! 忽略后台推送通知标记
typedef TAPIUINT32 TAPINoticeIgnoreFlagType;
//! 推送所有信息
const TAPINoticeIgnoreFlagType TAPI_NOTICE_IGNORE_NONE = 0x00000000;
//! 忽略所有推送
const TAPINoticeIgnoreFlagType TAPI_NOTICE_IGNORE_ALL = 0xFFFFFFFF;
//! 忽略资金推送:OnRtnFund
const TAPINoticeIgnoreFlagType TAPI_NOTICE_IGNORE_FUND = 0x00000001;
//! 忽略委托推送:OnRtnOrder
const TAPINoticeIgnoreFlagType TAPI_NOTICE_IGNORE_ORDER = 0x00000002;
//! 忽略成交推送:OnRtnFill
const TAPINoticeIgnoreFlagType TAPI_NOTICE_IGNORE_FILL = 0x00000004;
//! 忽略持仓推送:OnRtnPosition
const TAPINoticeIgnoreFlagType TAPI_NOTICE_IGNORE_POSITION = 0x00000008;
//! 忽略平仓推送:OnRtnClose
const TAPINoticeIgnoreFlagType TAPI_NOTICE_IGNORE_CLOSE = 0x00000010;
//! 忽略持仓盈亏推送:OnRtnPositionProfit
const TAPINoticeIgnoreFlagType TAPI_NOTICE_IGNORE_POSITIONPROFIT = 0x00000020;
/** @}*/

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_TAPIORDERQRYTYPETYPE	委托查询类型
 *	@{
 */
//=============================================================================
//! 委托查询类型
typedef TAPICHAR TAPIOrderQryTypeType;
//! 返回所有委托
const TAPIOrderQryTypeType TAPI_ORDER_QRY_TYPE_ALL = 'A';
//! 只返回未结束的委托
const TAPIOrderQryTypeType TAPI_ORDER_QRY_TYPE_UNENDED = 'U';
/** @}*/

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_T_CONTACTINFO	二次认证登录类型
 *	@{
 */
//=============================================================================
//! 二次认证登录类型
typedef TAPICHAR TAPILoginTypeType;
//! 正常登录（信任该设备）
const TAPILoginTypeType TAPI_LOGINTYPE_NORMAL = 'N';
//! 临时登录
const TAPILoginTypeType TAPI_LOGINTYPE_TEMPORARY = 'T';
/** @}*/
//! ------------------------------------------------------------------------------------------

//! 登录认证信息
struct TapAPITradeLoginAuth {
    TAPISTR_20 UserNo;            ///< 用户名
    TAPIYNFLAG ISModifyPassword;  ///< 是否修改密码
    TAPISTR_20 Password;          ///< 密码
    TAPISTR_20 NewPassword;       ///< 新密码
    TAPISTR_40 LoginIP;           ///< 登录IP（使用此字段需易盛授权）
    TAPISTR_50 LoginMac;          ///< 登录MAC,格式12-34-56-78-90-11（使用此字段需易盛授权）
    TAPISTR_50 DeviceName;        ///< 登录设备名称（使用此字段需易盛授权）
};

//! 登录反馈信息
struct TapAPITradeLoginRspInfo {
    TAPISTR_20 UserNo;            ///< 用户编号
    TAPIUserTypeType UserType;    ///< 用户类型
    TAPISTR_20 UserName;          ///< 用户名
    TAPISTR_50 ReservedInfo;      ///< 交易中心和后台版本号
    TAPISTR_40 LastLoginIP;       ///< 上次登录IP
    TAPIUINT32 LastLoginProt;     ///< 上次登录端口
    TAPIDATETIME LastLoginTime;   ///< 上次登录时间
    TAPIDATETIME LastLogoutTime;  ///< 上次退出时间
    TAPIDATE TradeDate;           ///< 当前交易日期
    TAPIDATETIME LastSettleTime;  ///< 上次结算时间
    TAPIDATETIME StartTime;       ///< 系统启动时间
    TAPIDATETIME NextSecondDate;  ///< 下次二次认证日期
    TAPISTR_300 LastLoginInfo;    ///< 登录附加信息
};
//! 请求二次认证授权码应答
struct TapAPIRequestVertificateCodeRsp {
    TAPISecondSerialIDType SecondSerialID;  ///< 二次认证授权码序号
    TAPIINT32 Effective;                    ///< 二次认证授权码有效期（分）。
};

//! 验证二次认证码请求结构
struct TapAPISecondCertificationReq {
    TAPISTR_10 VertificateCode;   ///< 二次认证码
    TAPILoginTypeType LoginType;  ///< 二次认证登录类型
};

//! 账号相关信息查询请求
struct TapAPIAccQryReq {
};

//! 资金账号信息
struct TapAPIAccountInfo {
    TAPISTR_20 AccountNo;                    ///< 资金账号
    TAPIAccountType AccountType;             ///< 账号类型
    TAPIAccountState AccountState;           ///< 账号状态
    TAPIAccountRightType AccountTradeRight;  ///< 交易状态
    TAPISTR_10 CommodityGroupNo;             ///< 可交易品种组.
    TAPISTR_20 AccountShortName;             ///< 账号简称
    TAPISTR_20 AccountEnShortName;           ///< 账号英文简称
};

//! 客户下单请求结构
struct TapAPINewOrder {
    TAPISTR_20 AccountNo;  ///< 客户资金帐号，必填

    TAPISTR_10 ExchangeNo;                 ///< 交易所编号，必填
    TAPICommodityType CommodityType;       ///< 品种类型，必填
    TAPISTR_10 CommodityNo;                ///< 品种编码类型，必填
    TAPISTR_10 ContractNo;                 ///< 合约1，必填
    TAPISTR_10 StrikePrice;                ///< 执行价格1，期权填写
    TAPICallOrPutFlagType CallOrPutFlag;   ///< 看张看跌1 默认N
    TAPISTR_10 ContractNo2;                ///< 合约2，默认空
    TAPISTR_10 StrikePrice2;               ///< 执行价格2，默认空
    TAPICallOrPutFlagType CallOrPutFlag2;  ///< 看张看跌2 默认N

    TAPIOrderTypeType OrderType;      ///< 委托类型 必填
    TAPIOrderSourceType OrderSource;  ///< 委托来源，默认程序单。
    TAPITimeInForceType TimeInForce;  ///< 委托有效类型,默认当日有效
    TAPIDATETIME ExpireTime;          ///< 有效日期(GTD情况下使用)

    TAPIYNFLAG IsRiskOrder;                  ///< 是否风险报单，默认非风险保单
    TAPISideType OrderSide;                  ///< 买入卖出
    TAPIPositionEffectType PositionEffect;   ///< 开平标志1,默认N
    TAPIPositionEffectType PositionEffect2;  ///< 开平标志2，默认N
    TAPISTR_50 InquiryNo;                    ///< 询价号
    TAPIHedgeFlagType HedgeFlag;             ///< 投机保值，默认N
    TAPIREAL64 OrderPrice;                   ///< 委托价格1
    TAPIREAL64 OrderPrice2;                  ///< 委托价格2，做市商应价使用
    TAPIREAL64 StopPrice;                    ///< 触发价格
    TAPIUINT32 OrderQty;                     ///< 委托数量，必填
    TAPIUINT32 OrderMinQty;                  ///< 最小成交量，默认1

    TAPIUINT32 MinClipSize;  ///< 冰山单最小随机量
    TAPIUINT32 MaxClipSize;  ///< 冰山单最大随机量

    TAPIINT32 RefInt;      ///< 整型参考值
    TAPIREAL64 RefDouble;  ///< 浮点参考值
    TAPISTR_50 RefString;  ///< 字符串参考值

    TAPIClientIDType ClientID;                  ///< 客户子账号，如果存在子账号，则自行上报子账号
    TAPITacticsTypeType TacticsType;            ///< 策略单类型，默认N
    TAPITriggerConditionType TriggerCondition;  ///< 触发条件，默认N
    TAPITriggerPriceTypeType TriggerPriceType;  ///< 触发价格类型，默认N
    TAPIYNFLAG AddOneIsValid;                   ///< 是否T+1有效,默认T+1有效。
    TAPIClientLocationIDType ClientLocationID;  ///< 下单人区域
};

//! 委托完整信息
struct TapAPIOrderInfo {
    TAPISTR_20 AccountNo;  ///< 客户资金帐号

    TAPISTR_10 ExchangeNo;                 ///< 交易所编号
    TAPICommodityType CommodityType;       ///< 品种类型
    TAPISTR_10 CommodityNo;                ///< 品种编码类型
    TAPISTR_10 ContractNo;                 ///< 合约1
    TAPISTR_10 StrikePrice;                ///< 执行价格1
    TAPICallOrPutFlagType CallOrPutFlag;   ///< 看张看跌1
    TAPISTR_10 ContractNo2;                ///< 合约2
    TAPISTR_10 StrikePrice2;               ///< 执行价格2
    TAPICallOrPutFlagType CallOrPutFlag2;  ///< 看张看跌2

    TAPIOrderTypeType OrderType;      ///< 委托类型
    TAPIOrderSourceType OrderSource;  ///< 委托来源
    TAPITimeInForceType TimeInForce;  ///< 委托有效类型
    TAPIDATETIME ExpireTime;          ///< 有效日期(GTD情况下使用)

    TAPIYNFLAG IsRiskOrder;                  ///< 是否风险报单
    TAPISideType OrderSide;                  ///< 买入卖出
    TAPIPositionEffectType PositionEffect;   ///< 开平标志1
    TAPIPositionEffectType PositionEffect2;  ///< 开平标志2
    TAPISTR_50 InquiryNo;                    ///< 询价号
    TAPIHedgeFlagType HedgeFlag;             ///< 投机保值
    TAPIREAL64 OrderPrice;                   ///< 委托价格1
    TAPIREAL64 OrderPrice2;                  ///< 委托价格2，做市商应价使用
    TAPIREAL64 StopPrice;                    ///< 触发价格
    TAPIUINT32 OrderQty;                     ///< 委托数量
    TAPIUINT32 OrderMinQty;                  ///< 最小成交量

    TAPIINT32 RefInt;      ///< 整型参考值
    TAPIREAL64 RefDouble;  ///< 浮点参考值
    TAPISTR_50 RefString;  ///< 字符串参考值

    TAPIUINT32 MinClipSize;  ///< 冰山单最小随机量
    TAPIUINT32 MaxClipSize;  ///< 冰山单最大随机量
    TAPISTR_50 LicenseNo;    ///< 软件授权号

    TAPICHAR ServerFlag;                        ///< 服务器标识
    TAPISTR_20 OrderNo;                         ///< 委托编码
    TAPISTR_50 ClientOrderNo;                   ///< 客户端本地委托编号
    TAPIClientIDType ClientID;                  ///< 客户子账号
    TAPITacticsTypeType TacticsType;            ///< 策略单类型
    TAPITriggerConditionType TriggerCondition;  ///< 触发条件
    TAPITriggerPriceTypeType TriggerPriceType;  ///< 触发价格类型
    TAPIYNFLAG AddOneIsValid;                   ///< 是否T+1有效

    TAPISTR_40 ClientLocalIP;  ///< 终端本地IP
    TAPIMACTYPE ClientMac;     ///< 终端本地Mac地址
    TAPISTR_40 ClientIP;       ///< 终端网络地址.

    TAPIUINT32 OrderStreamID;   ///< 委托流水号
    TAPISTR_10 UpperNo;         ///< 上手号
    TAPISTR_10 UpperChannelNo;  ///< 上手通道号

    TAPISTR_20 OrderLocalNo;   ///< 本地号
    TAPIUINT32 UpperStreamID;  ///< 上手流号

    TAPISTR_50 OrderSystemNo;          ///< 系统号
    TAPISTR_50 OrderExchangeSystemNo;  ///< 交易所系统号
    TAPISTR_50 OrderParentSystemNo;    ///< 父单系统号

    TAPISTR_20 OrderInsertUserNo;   ///< 下单人
    TAPIDATETIME OrderInsertTime;   ///< 下单时间
    TAPISTR_20 OrderCommandUserNo;  ///< 录单操作人
    TAPISTR_20 OrderUpdateUserNo;   ///< 委托更新人
    TAPIDATETIME OrderUpdateTime;   ///< 委托更新时间

    TAPIOrderStateType OrderState;  ///< 委托状态

    TAPIREAL64 OrderMatchPrice;   ///< 成交价1
    TAPIREAL64 OrderMatchPrice2;  ///< 成交价2
    TAPIUINT32 OrderMatchQty;     ///< 成交量1
    TAPIUINT32 OrderMatchQty2;    ///< 成交量2

    TAPIUINT32 ErrorCode;  ///< 最后一次操作错误信息码
    TAPISTR_50 ErrorText;  ///< 错误信息

    TAPIYNFLAG IsBackInput;                     ///< 是否为录入委托单
    TAPIYNFLAG IsDeleted;                       ///< 委托成交删除标
    TAPIYNFLAG IsAddOne;                        ///< 是否为T+1单
    TAPIClientLocationIDType ClientLocationID;  ///< 下单人区域
};

//! 报单通知结构
struct TapAPIOrderInfoNotice {
    TAPIUINT32 SessionID;        ///< 会话ID
    TAPIUINT32 ErrorCode;        ///< 错误码
    TapAPIOrderInfo* OrderInfo;  ///< 委托完整信息
};

//! 报单操作应答结构
struct TapAPIOrderActionRsp {
    TAPIORDERACT ActionType;     ///< 操作类型
    TapAPIOrderInfo* OrderInfo;  ///< 委托信息
};

//! 客户改单请求
//! 必填项有OrderNo,以及委托价和委托量，止损价。其他字段暂没有用。
struct TapAPIAmendOrder {
    TapAPINewOrder ReqData;  ///< 报单请求数据
    TAPICHAR ServerFlag;     ///< 服务器标识
    TAPISTR_20 OrderNo;      ///< 委托编号
};

//! 客户撤单请求结构
//! 必填项是OrderNo.
struct TapAPIOrderCancelReq {
    TAPIINT32 RefInt;      ///< 整型参考值
    TAPIREAL64 RefDouble;  ///< 浮点参考值
    TAPISTR_50 RefString;  ///< 字符串参考值
    TAPICHAR ServerFlag;   ///< 服务器标识
    TAPISTR_20 OrderNo;    ///< 委托编码
};

//! 挂起委托请求结构
typedef TapAPIOrderCancelReq TapAPIOrderDeactivateReq;

//! 激活委托请求结构
typedef TapAPIOrderCancelReq TapAPIOrderActivateReq;

//! 删除委托请求结构
typedef TapAPIOrderCancelReq TapAPIOrderDeleteReq;

//! 委托查询请求结构
struct TapAPIOrderQryReq {
    TAPISTR_20 AccountNo;  ///< 资金账号

    TAPISTR_10 ExchangeNo;            ///< 交易所编号
    TAPICommodityType CommodityType;  ///< 品种类型
    TAPISTR_10 CommodityNo;           ///< 品种编码类型
    TAPIOrderTypeType OrderType;      ///< 委托类型
    TAPIOrderSourceType OrderSource;  ///< 委托来源
    TAPITimeInForceType TimeInForce;  ///< 委托有效类型
    TAPIDATETIME ExpireTime;          ///< 有效日期(GTD情况下使用)

    TAPIYNFLAG IsRiskOrder;  ///< 是否风险报单

    TAPICHAR ServerFlag;  ///< 服务器标识
    TAPISTR_20 OrderNo;   ///< 委托编号

    TAPIYNFLAG IsBackInput;             ///< 是否为录入委托单
    TAPIYNFLAG IsDeleted;               ///< 委托成交删除标
    TAPIYNFLAG IsAddOne;                ///< 是否为T+1单
    TAPIOrderQryTypeType OrderQryType;  ///< 是否只查询未完成委托
};

//! 委托流程查询
struct TapAPIOrderProcessQryReq {
    TAPICHAR ServerFlag;  ///< 服务器标识
    TAPISTR_20 OrderNo;   ///< 委托编码
};

//! 成交查询请求结构
struct TapAPIFillQryReq {
    TAPISTR_20 AccountNo;  ///< 客户资金帐号

    TAPISTR_10 ExchangeNo;                ///< 交易所编号
    TAPICommodityType CommodityType;      ///< 品种类型
    TAPISTR_10 CommodityNo;               ///< 品种编码类型
    TAPISTR_10 ContractNo;                ///< 合约1
    TAPISTR_10 StrikePrice;               ///< 执行价格
    TAPICallOrPutFlagType CallOrPutFlag;  ///< 看张看跌

    TAPIMatchSourceType MatchSource;        ///< 委托来源
    TAPISideType MatchSide;                 ///< 买入卖出
    TAPIPositionEffectType PositionEffect;  ///< 开平标志1

    TAPICHAR ServerFlag;   ///< 服务器标识
    TAPISTR_20 OrderNo;    ///< 委托编码
    TAPISTR_10 UpperNo;    ///< 上手号
    TAPIYNFLAG IsDeleted;  ///< 委托成交删除标
    TAPIYNFLAG IsAddOne;   ///< 是否为T+1单
};

//! 成交信息
struct TapAPIFillInfo {
    TAPISTR_20 AccountNo;  ///< 客户资金帐号

    TAPISTR_10 ExchangeNo;                ///< 交易所编号
    TAPICommodityType CommodityType;      ///< 品种类型
    TAPISTR_10 CommodityNo;               ///< 品种编码类型
    TAPISTR_10 ContractNo;                ///< 合约1
    TAPISTR_10 StrikePrice;               ///< 执行价格
    TAPICallOrPutFlagType CallOrPutFlag;  ///< 看张看跌

    TAPIMatchSourceType MatchSource;        ///< 委托来源
    TAPISideType MatchSide;                 ///< 买入卖出
    TAPIPositionEffectType PositionEffect;  ///< 开平标志1

    TAPICHAR ServerFlag;       ///< 服务器标识
    TAPISTR_20 OrderNo;        ///< 委托编码
    TAPISTR_50 OrderSystemNo;  ///< 系统号

    TAPISTR_20 MatchNo;          ///< 本地成交号
    TAPISTR_70 UpperMatchNo;     ///< 上手成交号
    TAPISTR_70 ExchangeMatchNo;  ///< 交易所成交号

    TAPIDATETIME MatchDateTime;       ///< 成交时间
    TAPIDATETIME UpperMatchDateTime;  ///< 上手成交时间

    TAPISTR_10 UpperNo;  ///< 上手号

    TAPIREAL64 MatchPrice;  ///< 成交价
    TAPIUINT32 MatchQty;    ///< 成交量

    TAPIYNFLAG IsDeleted;  ///< 委托成交删除标
    TAPIYNFLAG IsAddOne;   ///< 是否为T+1单

    TAPISTR_10 FeeCurrencyGroup;  ///< 客户手续费币种组
    TAPISTR_10 FeeCurrency;       ///< 客户手续费币种
    TAPIREAL64 FeeValue;          ///< 手续费
    TAPIYNFLAG IsManualFee;       ///< 人工客户手续费标记

    TAPIREAL64 ClosePrositionPrice;  ///< 指定价格平仓
    TAPIREAL64 CloseProfit;          ///< 平仓盈亏
};

//! 平仓查询请求结构
struct TapAPICloseQryReq {
    TAPISTR_20 AccountNo;  ///< 客户资金帐号

    TAPISTR_10 ExchangeNo;            ///< 交易所编号
    TAPICommodityType CommodityType;  ///< 品种类型
    TAPISTR_10 CommodityNo;           ///< 品种编码类型
};

//! 平仓信息
struct TapAPICloseInfo {
    TAPISTR_20 AccountNo;  ///< 客户资金帐号

    TAPISTR_10 ExchangeNo;                ///< 交易所编号
    TAPICommodityType CommodityType;      ///< 品种类型
    TAPISTR_10 CommodityNo;               ///< 品种编码类型
    TAPISTR_10 ContractNo;                ///< 合约
    TAPISTR_10 StrikePrice;               ///< 执行价格
    TAPICallOrPutFlagType CallOrPutFlag;  ///< 看张看跌

    TAPISideType CloseSide;  ///< 平仓一边的买入卖出
    TAPIUINT32 CloseQty;     ///< 平仓成交量
    TAPIREAL64 OpenPrice;    ///< 开仓成交价
    TAPIREAL64 ClosePrice;   ///< 平仓成交价

    TAPISTR_20 OpenMatchNo;           ///< 本地成交号
    TAPIDATETIME OpenMatchDateTime;   ///< 成交时间
    TAPISTR_20 CloseMatchNo;          ///< 本地成交号
    TAPIDATETIME CloseMatchDateTime;  ///< 成交时间

    TAPIUINT32 CloseStreamId;  ///< 平仓流号

    TAPISTR_10 CommodityCurrencyGroup;  ///< 品种币种组
    TAPISTR_10 CommodityCurrency;       ///< 品种币种

    TAPIREAL64 CloseProfit;  ///< 平仓盈亏
};

//! 持仓查询请求结构
struct TapAPIPositionQryReq {
    TAPISTR_20 AccountNo;
};

//! 持仓信息
struct TapAPIPositionInfo {
    TAPISTR_20 AccountNo;  ///< 客户资金帐号

    TAPISTR_10 ExchangeNo;                ///< 交易所编号
    TAPICommodityType CommodityType;      ///< 品种类型
    TAPISTR_10 CommodityNo;               ///< 品种编码类型
    TAPISTR_10 ContractNo;                ///< 合约1
    TAPISTR_10 StrikePrice;               ///< 执行价格
    TAPICallOrPutFlagType CallOrPutFlag;  ///< 看张看跌

    TAPISideType MatchSide;       ///< 买入卖出
    TAPIHedgeFlagType HedgeFlag;  ///< 投机保值

    TAPISTR_70 PositionNo;  ///< 本地持仓号，服务器编写

    TAPICHAR ServerFlag;  ///< 服务器标识
    TAPISTR_20 OrderNo;   ///< 委托编码
    TAPISTR_20 MatchNo;   ///< 本地成交号
    TAPISTR_10 UpperNo;   ///< 上手号

    TAPIREAL64 PositionPrice;  ///< 持仓价
    TAPIUINT32 PositionQty;    ///< 持仓量

    TAPIUINT32 PositionStreamId;  ///< 持仓流号

    TAPISTR_10 CommodityCurrencyGroup;  ///< 品种币种组
    TAPISTR_10 CommodityCurrency;       ///< 品种币种

    TAPIREAL64 CalculatePrice;  ///< 当前计算价格

    TAPIREAL64 AccountInitialMargin;      ///< 客户初始保证金
    TAPIREAL64 AccountMaintenanceMargin;  ///< 客户维持保证金
    TAPIREAL64 UpperInitialMargin;        ///< 上手初始保证金
    TAPIREAL64 UpperMaintenanceMargin;    ///< 上手维持保证金

    TAPIREAL64 PositionProfit;     ///< 持仓盈亏
    TAPIREAL64 LMEPositionProfit;  ///< LME持仓盈亏
    TAPIREAL64 OptionMarketValue;  ///< 期权市值
    TAPIYNFLAG IsHistory;          ///< 是否为昨仓。
};

//! 客户持仓盈亏
struct TapAPIPositionProfit {
    TAPISTR_70 PositionNo;         ///< 本地持仓号，服务器编写
    TAPIUINT32 PositionStreamId;   ///< 持仓流号
    TAPIREAL64 PositionProfit;     ///< 持仓盈亏
    TAPIREAL64 LMEPositionProfit;  ///< LME持仓盈亏
    TAPIREAL64 OptionMarketValue;  ///< 期权市值
    TAPIREAL64 CalculatePrice;     ///< 计算价格
};

//! 客户持仓盈亏通知
struct TapAPIPositionProfitNotice {
    TAPIYNFLAG IsLast;           ///< 是否最后一包
    TapAPIPositionProfit* Data;  ///< 客户持仓盈亏信息
};

struct TapAPIPositionSummary {
    TAPISTR_20 AccountNo;  ///< 客户资金帐号

    TAPISTR_10 ExchangeNo;                ///< 交易所编号
    TAPICommodityType CommodityType;      ///< 品种类型
    TAPISTR_10 CommodityNo;               ///< 品种编码类型
    TAPISTR_10 ContractNo;                ///< 合约1
    TAPISTR_10 StrikePrice;               ///< 执行价格
    TAPICallOrPutFlagType CallOrPutFlag;  ///< 看张看跌

    TAPISideType MatchSide;     ///< 买入卖出
    TAPIREAL64 PositionPrice;   ///< 持仓均价。
    TAPIUINT32 PositionQty;     ///< 持仓量
    TAPIUINT32 HisPositionQty;  ///< 历史持仓量
};

//! 资金查询请求
struct TapAPIFundReq {
    TAPISTR_20 AccountNo;  ///< 客户资金帐号
};
//! 资金账号资金信息
struct TapAPIFundData {
    TAPISTR_20 AccountNo;  ///< 客户资金账号

    TAPISTR_10 CurrencyGroupNo;   ///< 币种组号
    TAPISTR_10 CurrencyNo;        ///< 币种号(为空表示币种组基币资金)
    TAPIREAL64 TradeRate;         ///< 交易汇率
    TAPIFutureAlgType FutureAlg;  ///< 期货算法
    TAPIOptionAlgType OptionAlg;  ///< 期权算法

    TAPIREAL64 PreBalance;            ///< 上日结存
    TAPIREAL64 PreUnExpProfit;        ///< 上日未到期平盈
    TAPIREAL64 PreLMEPositionProfit;  ///< 上日LME持仓平盈
    TAPIREAL64 PreEquity;             ///< 上日权益
    TAPIREAL64 PreAvailable1;         ///< 上日可用
    TAPIREAL64 PreMarketEquity;       ///< 上日市值权益

    TAPIREAL64 CashInValue;               ///< 入金
    TAPIREAL64 CashOutValue;              ///< 出金
    TAPIREAL64 CashAdjustValue;           ///< 资金调整
    TAPIREAL64 CashPledged;               ///< 质押资金
    TAPIREAL64 FrozenFee;                 ///< 冻结手续费
    TAPIREAL64 FrozenDeposit;             ///< 冻结保证金
    TAPIREAL64 AccountFee;                ///< 客户手续费包含交割手续费
    TAPIREAL64 SwapInValue;               ///< 汇入资金
    TAPIREAL64 SwapOutValue;              ///< 汇出资金
    TAPIREAL64 PremiumIncome;             ///< 权利金收取
    TAPIREAL64 PremiumPay;                ///< 权利金支付
    TAPIREAL64 CloseProfit;               ///< 平仓盈亏
    TAPIREAL64 FrozenFund;                ///< 冻结资金
    TAPIREAL64 UnExpProfit;               ///< 未到期平盈
    TAPIREAL64 ExpProfit;                 ///< 到期平仓盈亏
    TAPIREAL64 PositionProfit;            ///< 不含LME持仓盈亏
    TAPIREAL64 LmePositionProfit;         ///< LME持仓盈亏
    TAPIREAL64 OptionMarketValue;         ///< 期权市值
    TAPIREAL64 AccountIntialMargin;       ///< 客户初始保证金
    TAPIREAL64 AccountMaintenanceMargin;  ///< 客户维持保证金
    TAPIREAL64 UpperInitalMargin;         ///< 上手初始保证金
    TAPIREAL64 UpperMaintenanceMargin;    ///< 上手维持保证金
    TAPIREAL64 Discount;                  ///< LME贴现

    TAPIREAL64 Balance;       ///< 当日结存
    TAPIREAL64 Equity;        ///< 当日权益
    TAPIREAL64 Available;     ///< 当日可用
    TAPIREAL64 CanDraw;       ///< 可提取
    TAPIREAL64 MarketEquity;  ///< 账户市值
    TAPIREAL64 AuthMoney;     ///< 授信资金
};

//! 交易品种信息
struct TapAPICommodityInfo {
    TAPISTR_10 ExchangeNo;            // 交易所编码
    TAPICommodityType CommodityType;  // 品种类型
    TAPISTR_10 CommodityNo;           // 品种编号

    TAPISTR_20 CommodityName;     // 品种名称
    TAPISTR_30 CommodityEngName;  // 品种英文名称

    TAPISTR_10 RelateExchangeNo;
    TAPICommodityType RelateCommodityType;
    TAPISTR_10 RelateCommodityNo;

    TAPISTR_10 RelateExchangeNo2;
    TAPICommodityType RelateCommodityType2;
    TAPISTR_10 RelateCommodityNo2;

    TAPISTR_10 CurrencyGroupNo;
    TAPISTR_10 TradeCurrency;             // 交易币种
    TAPIREAL64 ContractSize;              // 每手乘数
    TAPIOpenCloseModeType OpenCloseMode;  // 开平方式
    TAPIREAL64 StrikePriceTimes;          // 执行价格倍数

    TAPIREAL64 CommodityTickSize;       // 最小变动价位
    TAPIINT32 CommodityDenominator;     // 报价分母
    TAPICmbDirectType CmbDirect;        // 组合方向
    TAPIDeliveryModeType DeliveryMode;  // 交割行权方式
    TAPIINT32 DeliveryDays;             // 交割日偏移
    TAPITIME AddOneTime;                // T+1分割时间
    TAPIINT32 CommodityTimeZone;        // 品种时区
    TAPIYNFLAG IsAddOne;                // 是否处于T+1时段。
    TAPIOptionType OptionType;          // 期权类型
};

//! 交易合约信息
struct TapAPITradeContractInfo {
    TAPISTR_10 ExchangeNo;                 ///< 交易所编码
    TAPICommodityType CommodityType;       ///< 品种类型
    TAPISTR_10 CommodityNo;                ///< 品种编号
    TAPISTR_10 ContractNo1;                ///< 合约代码1
    TAPISTR_10 StrikePrice1;               ///< 执行价1
    TAPICallOrPutFlagType CallOrPutFlag1;  ///< 看涨看跌标示1
    TAPISTR_10 ContractNo2;                ///< 合约代码2
    TAPISTR_10 StrikePrice2;               ///< 执行价2
    TAPICallOrPutFlagType CallOrPutFlag2;  ///< 看涨看跌标示2
    TAPIContractTypeType ContractType;     ///< 合约类型
    TAPISTR_10 QuoteUnderlyingContract;    ///< 行情真实合约
    TAPISTR_70 ContractName;               ///< 合约名称
    TAPIDATE ContractExpDate;              ///< 合约到期日
    TAPIDATE LastTradeDate;                ///< 最后交易日
    TAPIDATE FirstNoticeDate;              ///< 首次通知日
    TAPIREAL64 ContractSize;               ///< 特殊合约层每手乘数
};

//! 交易币种信息
struct TapAPICurrencyInfo {
    TAPISTR_10 CurrencyNo;       ///< 币种编号
    TAPISTR_10 CurrencyGroupNo;  ///< 币种组编号
    TAPIREAL64 TradeRate;        ///< 交易汇率
    TAPIREAL64 TradeRate2;       ///< 交易汇率2

    TAPIFutureAlgType FutureAlg;  ///< 币种组独立标志
    TAPIOptionAlgType OptionAlg;  ///< 是否是基币
};
//=============================================================================
/**
 *	 G_DATATYPE_T_TAPIMSGRECEIVERTYPE	消息接收者类型
 *
 */
//=============================================================================
//! 消息接收者类型
typedef TAPICHAR TAPIMsgReceiverType;
//! 单资金账号客户
const TAPIMsgReceiverType TAPI_MSG_RECEIVER_ACCOUNTNO = '1';
//! 资金账号分组
const TAPIMsgReceiverType TAPI_MSG_RECEIVER_ACCOUNTGROUPNO = '2';
//! 符合属性的资金账号
const TAPIMsgReceiverType TAPI_MSG_RECEIVER_ATTRIBUTE = '3';
//! 指定登录用户
const TAPIMsgReceiverType TAPI_MSG_RECEIVER_USERNO = '4';

//=============================================================================
/**
 *	 G_DATATYPE_T_TAPIMSGLEVELTYPE	消息级别
 *
 */
//=============================================================================
//! 消息级别
typedef TAPICHAR TAPIMsgLevelType;
//! 普通
const TAPIMsgLevelType TAPI_MSG_LEVEL_NORMAL = '1';
//! 重要
const TAPIMsgLevelType TAPI_MSG_LEVEL_IMPORTANT = '2';
//! 紧急
const TAPIMsgLevelType TAPI_MSG_LEVEL_IMERGENCY = '3';

//=============================================================================
/**
 *	 G_DATATYPE_T_TAPIMSGTYPETYPE	消息类型
 *
 */
//=============================================================================
//! 消息类型
typedef TAPICHAR TAPIMsgTypeType;
//! 管理
const TAPIMsgTypeType TAPI_Msg_TYPE_MANAGER = '1';
//! 风险
const TAPIMsgTypeType TAPI_Msg_TYPE_RISKCONTROL = '2';

//=============================================================================
/**
 *	 G_DATATYPE_T_TAPIBILLTYPETYPE	账单类型
 *
 */
//=============================================================================
//! 账单类型
typedef TAPICHAR TAPIBillTypeType;
//! 日账单
const TAPIBillTypeType TAPI_BILL_DATE = 'D';
//! 月账单
const TAPIBillTypeType TAPI_BILL_MONTH = 'M';

//=============================================================================
/**
 *	 G_DATATYPE_T_TAPIBILLFILETYPETYPE	帐单文件类型
 *
 */
//=============================================================================
//! 帐单文件类型
typedef TAPICHAR TAPIBillFileTypeType;
//! txt格式文件
const TAPIBillFileTypeType TAPI_BILL_FILE_TXT = 'T';
//! pdf格式文件
const TAPIBillFileTypeType TAPI_BILL_FILE_PDF = 'F';

//! 交易或风控消息查询请求结构
struct TapAPITradeMessageReq {
    TAPISTR_20 AccountNo;
    TAPIDATETIME BenginSendDateTime;
    TAPIDATETIME EndSendDateTime;
};

//! 交易消息发送应答结构
struct TapAPITradeMessage {
    TAPIUINT32 SerialID;  ///< 流号

    TAPISTR_20 AccountNo;  ///< 客户资金账号

    TAPIDATETIME TMsgValidDateTime;  ///< 消息有效时间
    TAPISTR_50 TMsgTitle;            ///< 消息标题
    TAPISTR_500 TMsgContent;         ///< 消息内容
    TAPIMsgTypeType TMsgType;        ///< 消息类型
    TAPIMsgLevelType TMsgLevel;      ///< 消息级别

    TAPIYNFLAG IsSendBySMS;     ///< 是否发送短信
    TAPIYNFLAG IsSendByEMail;   ///< 是否发送邮件
    TAPISTR_20 Sender;          ///< 发送者
    TAPIDATETIME SendDateTime;  ///< 发送时间
};

//! 客户账单查询请求结构
struct TapAPIBillQryReq {
    TAPISTR_20 UserNo;
    TAPIBillTypeType BillType;
    TAPIDATE BillDate;
    TAPIBillFileTypeType BillFileType;
};

//! 客户账单查询应答结构
struct TapAPIBillQryRsp {
    TapAPIBillQryReq Reqdata;
    TAPIINT32 BillLen;
    TAPICHAR BillText[1];  ///< 变长账单内容，长度由BillLen指定
};

//! 历史委托查询请求结构
struct TapAPIHisOrderQryReq {
    TAPISTR_20 AccountNo;  ///< 客户资金账号
    TAPIDATE BeginDate;    ///< 开始时间 (必填)
    TAPIDATE EndDate;      ///< 结束时间 (必填)
};

struct TapAPIHisOrderQryRsp {
    TAPIDATE Date;         ///< 日期
    TAPISTR_20 AccountNo;  ///< 客户资金账号

    TAPISTR_10 ExchangeNo;                 ///< 交易所编号
    TAPICommodityType CommodityType;       ///< 品种类型
    TAPISTR_10 CommodityNo;                ///< 品种编码类型
    TAPISTR_10 ContractNo;                 ///< 合约
    TAPISTR_10 StrikePrice;                ///< 执行价格
    TAPICallOrPutFlagType CallOrPutFlag;   ///< 看张看跌
    TAPISTR_10 ContractNo2;                ///< 合约2
    TAPISTR_10 StrikePrice2;               ///< 执行价格2
    TAPICallOrPutFlagType CallOrPutFlag2;  ///< 看张看跌2

    TAPIOrderTypeType OrderType;             ///< 委托类型
    TAPIOrderSourceType OrderSource;         ///< 委托来源
    TAPITimeInForceType TimeInForce;         ///< 委托有效类型
    TAPIDATETIME ExpireTime;                 ///< 有效日期(GTD情况下使用)
    TAPIYNFLAG IsRiskOrder;                  ///< 是否风险报单
    TAPISideType OrderSide;                  ///< 买入卖出
    TAPIPositionEffectType PositionEffect;   ///< 开平标志
    TAPIPositionEffectType PositionEffect2;  ///< 开平标志2
    TAPISTR_50 InquiryNo;                    ///< 询价号
    TAPIHedgeFlagType HedgeFlag;             ///< 投机保值
    TAPIREAL64 OrderPrice;                   ///< 委托价格
    TAPIREAL64 OrderPrice2;                  ///< 委托价格2，做市商应价使用
    TAPIREAL64 StopPrice;                    ///< 触发价格
    TAPIUINT32 OrderQty;                     ///< 委托数量
    TAPIUINT32 OrderMinQty;                  ///< 最小成交量
    TAPIUINT32 OrderCanceledQty;             ///< 撤单数量

    TAPIINT32 RefInt;      ///< 整型参考值
    TAPIREAL64 RefDouble;  ///< 浮点参考型。
    TAPISTR_50 RefString;  ///< 字符串参考值

    TAPICHAR ServerFlag;       ///< 服务器标识
    TAPISTR_20 OrderNo;        ///< 委托编码
    TAPIUINT32 OrderStreamID;  ///< 委托流水号

    TAPISTR_10 UpperNo;         ///< 上手号
    TAPISTR_10 UpperChannelNo;  ///< 上手通道编号
    TAPISTR_20 OrderLocalNo;    ///< 本地号
    TAPIUINT32 UpperStreamID;   ///< 上手流号

    TAPISTR_50 OrderSystemNo;          ///< 系统号
    TAPISTR_50 OrderExchangeSystemNo;  ///< 交易所系统号
    TAPISTR_50 OrderParentSystemNo;    ///< 父单系统号

    TAPISTR_20 OrderInsertUserNo;   ///< 下单人
    TAPIDATETIME OrderInsertTime;   ///< 下单时间
    TAPISTR_20 OrderCommandUserNo;  ///< 指令下达人
    TAPISTR_20 OrderUpdateUserNo;   ///< 委托更新人
    TAPIDATETIME OrderUpdateTime;   ///< 委托更新时间

    TAPIOrderStateType OrderState;  ///< 委托状态

    TAPIREAL64 OrderMatchPrice;   ///< 成交价
    TAPIREAL64 OrderMatchPrice2;  ///< 成交价2
    TAPIUINT32 OrderMatchQty;     ///< 成交量
    TAPIUINT32 OrderMatchQty2;    ///< 成交量2

    TAPIUINT32 ErrorCode;  ///< 最后一次操作错误信息码
    TAPISTR_50 ErrorText;  ///< 错误信息

    TAPIYNFLAG IsBackInput;    ///< 是否为录入委托单
    TAPIYNFLAG IsDeleted;      ///< 委托成交删除标记
    TAPIYNFLAG IsAddOne;       ///< 是否为T+1单
    TAPIYNFLAG AddOneIsValid;  ///< 是否T+1有效

    TAPIUINT32 MinClipSize;  ///< 冰山单最小随机量
    TAPIUINT32 MaxClipSize;  ///< 冰山单最大随机量
    TAPISTR_50 LicenseNo;    ///< 软件授权号

    TAPITacticsTypeType TacticsType;            ///< 策略单类型
    TAPITriggerConditionType TriggerCondition;  ///< 触发条件
    TAPITriggerPriceTypeType TriggerPriceType;  ///< 触发价格类型
};
//! 历史成交查询请求结构
struct TapAPIHisMatchQryReq {
    TAPISTR_20 AccountNo;  ///< 客户资金账号
    TAPIDATE BeginDate;    ///< 开始日期，必填
    TAPIDATE EndDate;      ///< 结束日期，必填
};

//! 历史成交查询应答结构
//! key1=SerialID
//! key2=ExchangeNo+MatchCmbNo+MatchNo+MatchSide
struct TapAPIHisMatchQryRsp {
    TAPIDATE SettleDate;   ///< 结算日期
    TAPIDATE TradeDate;    ///< 交易日期
    TAPISTR_20 AccountNo;  ///< 客户资金账号

    TAPISTR_10 ExchangeNo;                ///< 市场或者交易所代码
    TAPICommodityType CommodityType;      ///< 品种类型
    TAPISTR_10 CommodityNo;               ///< 品种号
    TAPISTR_10 ContractNo;                ///< 合约号
    TAPISTR_10 StrikePrice;               ///< 执行价
    TAPICallOrPutFlagType CallOrPutFlag;  ///< 看涨看跌标志

    TAPIMatchSourceType MatchSource;        ///< 成交来源
    TAPISideType MatchSide;                 ///< 买卖方向
    TAPIPositionEffectType PositionEffect;  ///< 开平标志
    TAPIHedgeFlagType HedgeFlag;            ///< 投机保值
    TAPIREAL64 MatchPrice;                  ///< 成交价
    TAPIUINT32 MatchQty;                    ///< 成交量

    TAPISTR_20 OrderNo;        ///< 委托号
    TAPISTR_20 MatchNo;        ///< 成交序号
    TAPIUINT32 MatchStreamID;  ///< 成交流水号

    TAPISTR_10 UpperNo;             ///< 上手号
    TAPISTR_20 MatchCmbNo;          ///< 组合号
    TAPISTR_70 ExchangeMatchNo;     ///< 成交编号(交易所成交号)
    TAPIUINT32 MatchUpperStreamID;  ///< 上手流水号

    TAPISTR_10 CommodityCurrencyGroup;
    TAPISTR_10 CommodityCurrency;  // 品种币种

    TAPIREAL64 Turnover;       ///< 成交金额
    TAPIREAL64 PremiumIncome;  ///< 权利金收入
    TAPIREAL64 PremiumPay;     ///< 权利金支出

    TAPIREAL64 AccountFee;  ///< 客户手续费
    TAPISTR_10 AccountFeeCurrencyGroup;
    TAPISTR_10 AccountFeeCurrency;  ///< 客户手续费币种
    TAPIYNFLAG IsManualFee;         ///< 人工客户手续费标记
    TAPIREAL64 AccountOtherFee;     // 客户其他费用

    TAPIREAL64 UpperFee;  ///< 上手手续费
    TAPISTR_10 UpperFeeCurrencyGroup;
    TAPISTR_10 UpperFeeCurrency;  ///< 上手手续费币种
    TAPIYNFLAG IsUpperManualFee;  ///< 人工上手手续费标记
    TAPIREAL64 UpperOtherFee;     // 上手其他费用

    TAPIDATETIME MatchDateTime;       ///< 成交时间
    TAPIDATETIME UpperMatchDateTime;  ///< 上手成交时间

    TAPIREAL64 CloseProfit;  ///< 平仓盈亏
    TAPIREAL64 ClosePrice;   ///< 指定平仓价格；

    TAPIUINT32 CloseQty;  ///< 平仓量

    TAPISTR_10 SettleGroupNo;  ///< 结算分组
    TAPISTR_20 OperatorNo;     ///< 操作员
    TAPIDATETIME OperateTime;  ///< 操作时间
};

//! 历史委托流程查询请求结构
struct TapAPIHisOrderProcessQryReq {
    TAPIDATE Date;
    TAPISTR_20 OrderNo;
};

//! 历史委托流程查询应答数据结构
typedef TapAPIHisOrderQryRsp TapAPIHisOrderProcessQryRsp;

//=============================================================================
/**
 *	 G_DATATYPE_SETTLEFLAG	结算类型
 *
 */
//=============================================================================
//! 结算类型
typedef TAPICHAR TAPISettleFlagType;
//! 自动结算
const TAPISettleFlagType SettleFlag_AutoSettle = '0';
//! 人工结算
const TAPISettleFlagType SettleFlagh_Manual = '2';

//! 历史持仓查询请求结构
struct TapAPIHisPositionQryReq {
    TAPISTR_20 AccountNo;           ///< 客户资金账号
    TAPIDATE Date;                  ///< 日期
    TAPISettleFlagType SettleFlag;  ///< 数据类型
};

//! 历史持仓查询数据应答结构
//! key1=SerialID
//! key2=结算日期+交易所+组号编号+持仓编号+买卖方向
struct TapAPIHisPositionQryRsp {
    TAPIDATE SettleDate;  ///< 结算日期
    TAPIDATE OpenDate;    ///< 开仓日期

    TAPISTR_20 AccountNo;  ///< 客户资金账号

    TAPISTR_10 ExchangeNo;                ///< 市场或者交易所代码
    TAPICommodityType CommodityType;      ///< 品种类型
    TAPISTR_10 CommodityNo;               ///< 品种编码
    TAPISTR_10 ContractNo;                ///< 合约号
    TAPISTR_10 StrikePrice;               ///< 执行价
    TAPICallOrPutFlagType CallOrPutFlag;  ///< 看涨看跌标志

    TAPISideType MatchSide;       ///< 买卖方向
    TAPIHedgeFlagType HedgeFlag;  ///< 投机保值
    TAPIREAL64 PositionPrice;     ///< 持仓价格
    TAPIUINT32 PositionQty;       ///< 持仓量

    TAPISTR_20 OrderNo;     ///<
    TAPISTR_20 PositionNo;  ///< 持仓编号

    TAPISTR_10 UpperNo;  ///< 上手号

    TAPISTR_10 CurrencyGroup;  ///< 品种币种组
    TAPISTR_10 Currency;       ///< 品种币种

    TAPIREAL64 PreSettlePrice;     ///< 上日结算价格
    TAPIREAL64 SettlePrice;        ///< 结算价格
    TAPIREAL64 PositionDProfit;    ///< 持仓盈亏(盯市)
    TAPIREAL64 LMEPositionProfit;  ///< LME持仓盈亏
    TAPIREAL64 OptionMarketValue;  ///< 期权市值

    TAPIREAL64 AccountInitialMargin;      ///< 客户初始保证金
    TAPIREAL64 AccountMaintenanceMargin;  ///< 客户维持保证金
    TAPIREAL64 UpperInitialMargin;        ///< 上手初始保证金
    TAPIREAL64 UpperMaintenanceMargin;    ///< 上手维持保证金

    TAPISTR_10 SettleGroupNo;    ///< 结算分组
    TAPICHAR ServerFlag;         ///< 服务器标识
    TAPISTR_20 SuperiorAccount;  ///< 上级账号
};

//! 交割查询请求结构
struct TapAPIHisDeliveryQryReq {
    TAPISTR_20 AccountNo;           ///< 客户资金账号
    TAPIDATE BeginDate;             ///< 开始日期（必填）
    TAPIDATE EndDate;               ///< 结束日期（必填）
    TAPISettleFlagType SettleFlag;  ///< 结算类型
};

//! 交割查询应答数据结构
//! key1=SerialID
struct TapAPIHisDeliveryQryRsp {
    TAPIDATE DeliveryDate;  ///< 交割日期
    TAPIDATE OpenDate;      ///< 开仓日期
    TAPISTR_20 AccountNo;   ///< 客户资金账号

    TAPISTR_10 ExchangeNo;                ///< 市场号或交易所代码
    TAPICommodityType CommodityType;      ///< 品种类型
    TAPISTR_10 CommodityNo;               ///< 品种编码
    TAPISTR_10 ContractNo;                ///< 合约编码
    TAPISTR_10 StrikePrice;               ///< 执行价
    TAPICallOrPutFlagType CallOrPutFlag;  ///< 看涨看跌标志

    TAPIMatchSourceType MatchSource;  ///< 成交来源
    TAPISideType OpenSide;            ///< 开仓方向
    TAPIREAL64 OpenPrice;             ///< 开仓价格
    TAPIREAL64 DeliveryPrice;         ///< 交割价格
    TAPIUINT32 DeliveryQty;           ///< 交割量
    TAPIUINT32 FrozenQty;             ///< 冻结量

    TAPISTR_20 OpenNo;   ///< 开仓成交号
    TAPISTR_10 UpperNo;  ///< 上手编号

    TAPISTR_10 CommodityCurrencyGroupy;  ///< 品种币种
    TAPISTR_10 CommodityCurrency;        ///< 品种币种
    TAPIREAL64 PreSettlePrice;           ///< 上日结算价
    TAPIREAL64 DeliveryProfit;           ///< 交割盈亏

    TAPIREAL64 AccountFrozenInitialMargin;      ///< 客户初始冻结保证金
    TAPIREAL64 AccountFrozenMaintenanceMargin;  ///< 客户维持冻结保证金
    TAPIREAL64 UpperFrozenInitialMargin;        ///< 上手初始冻结保证金
    TAPIREAL64 UpperFrozenMaintenanceMargin;    ///< 上手维持冻结保证金

    TAPISTR_10 AccountFeeCurrencyGroup;
    TAPISTR_10 AccountFeeCurrency;  ///< 客户手续费币种
    TAPIREAL64 AccountDeliveryFee;  ///< 客户交割手续费
    TAPISTR_10 UpperFeeCurrencyGroup;
    TAPISTR_10 UpperFeeCurrency;  ///< 上手手续费币种
    TAPIREAL64 UpperDeliveryFee;  ///< 上手交割手续费

    TAPIDeliveryModeType DeliveryMode;  ///< 交割行权方式
    TAPISTR_20 OperatorNo;              ///< 操作员
    TAPIDATETIME OperateTime;           ///< 操作时间
    TAPISTR_20 SettleGourpNo;           ///< 结算分组
    TAPISTR_10 FutureContractNo;        ///< 特殊期权标的合约
    TAPISTR_10 OptionStrikePrice;       ///< 期权真实执行价
    TAPISTR_20 SuperiorAccount;         ///< 上级账号
};

//! 客户资金调整查询请求结构
struct TapAPIAccountCashAdjustQryReq {
    TAPIUINT32 SerialID;
    TAPISTR_20 AccountNo;
    TAPIDATE BeginDate;  ///< 必填
    TAPIDATE EndDate;    ///< 必填
};

//! 客户资金调整查询应答结构
struct TapAPIAccountCashAdjustQryRsp {
    TAPIDATE Date;         ///< 日期
    TAPISTR_20 AccountNo;  ///< 客户资金账号

    TAPICashAdjustTypeType CashAdjustType;  ///< 资金调整类型
    TAPISTR_10 CurrencyGroupNo;             ///< 币种组号
    TAPISTR_10 CurrencyNo;                  ///< 币种号
    TAPIREAL64 CashAdjustValue;             ///< 资金调整金额
    TAPISTR_100 CashAdjustRemark;           ///< 资金调整备注

    TAPIDATETIME OperateTime;  ///< 操作时间
    TAPISTR_20 OperatorNo;     ///< 操作员

    TAPISTR_10 AccountBank;                   ///< 客户银行
    TAPISTR_20 BankAccount;                   ///< 客户银行账号
    TAPIBankAccountLWFlagType AccountLWFlag;  ///< 客户本外币标识
    TAPISTR_10 CompanyBank;                   ///< 公司银行
    TAPISTR_20 InternalBankAccount;           ///< 公司银行账户
    TAPIBankAccountLWFlagType CompanyLWFlag;  ///< 公司本外币标识
};
//! 客户账户手续费计算参数查询请求结构
struct TapAPIAccountFeeRentQryReq {
    TAPISTR_20 AccountNo;
};
//! 客户账户手续费计算参数查询应答结构
struct TapAPIAccountFeeRentQryRsp {
    TAPISTR_20 AccountNo;
    TAPISTR_10 ExchangeNo;
    TAPICommodityType CommodityType;
    TAPISTR_10 CommodityNo;
    TAPIMatchSourceType MatchSource;
    TAPICalculateModeType CalculateMode;
    TAPISTR_10 CurrencyGroupNo;
    TAPISTR_10 CurrencyNo;
    TAPIREAL64 OpenCloseFee;
    TAPIREAL64 CloseTodayFee;
};
//! 客户账户保证金计算参数查询结构
struct TapAPIAccountMarginRentQryReq {
    TAPISTR_20 AccountNo;
    TAPISTR_10 ExchangeNo;
    TAPICommodityType CommodityType;
    TAPISTR_10 CommodityNo;
    // TAPISTR_10						ContractNo;//暂时先不对外开放。
};

//! 客户账户保证金计算参数查询应答
struct TapAPIAccountMarginRentQryRsp {
    TAPISTR_20 AccountNo;
    TAPISTR_10 ExchangeNo;
    TAPICommodityType CommodityType;
    TAPISTR_10 CommodityNo;
    TAPISTR_10 ContractNo;
    TAPISTR_10 StrikePrice;
    TAPICallOrPutFlagType CallOrPutFlag;
    TAPICalculateModeType CalculateMode;
    TAPISTR_10 CurrencyGroupNo;
    TAPISTR_10 CurrencyNo;
    TAPIREAL64 InitialMargin;
    TAPIREAL64 MaintenanceMargin;
    TAPIREAL64 SellInitialMargin;
    TAPIREAL64 SellMaintenanceMargin;
    TAPIREAL64 LockMargin;
};
//! 港交所做市商询价通知。
struct TapAPIOrderQuoteMarketNotice {
    TAPISTR_10 ExchangeNo;                ///< 交易所编号
    TAPICommodityType CommodityType;      ///< 品种类型
    TAPISTR_10 CommodityNo;               ///< 品种编号
    TAPISTR_10 ContractNo;                ///< 合约
    TAPISTR_10 StrikePrice;               ///< 执行价
    TAPICallOrPutFlagType CallOrPutFlag;  ///< 看涨看跌
    TAPISideType OrderSide;               ///< 买卖方向
    TAPIUINT32 OrderQty;                  ///< 委托量
};

//! 做市商下单请求结构
struct TapAPIOrderMarketInsertReq {
    TAPISTR_20 AccountNo;                       ///< 客户资金帐号
    TAPISTR_10 ExchangeNo;                      ///< 交易所编号
    TAPICommodityType CommodityType;            ///< 品种类型
    TAPISTR_10 CommodityNo;                     ///< 品种编码类型
    TAPISTR_10 ContractNo;                      ///< 合约
    TAPISTR_10 StrikePrice;                     ///< 执行价格
    TAPICallOrPutFlagType CallOrPutFlag;        ///< 看张看跌
    TAPIOrderTypeType OrderType;                ///< 委托类型
    TAPITimeInForceType TimeInForce;            ///< 有效类型
    TAPIDATETIME ExpireTime;                    ///< 有效期
    TAPIOrderSourceType OrderSource;            ///< 委托来源
    TAPIPositionEffectType BuyPositionEffect;   ///< 买开平标志
    TAPIPositionEffectType SellPositionEffect;  ///< 卖开平标志

    TAPIYNFLAG AddOneIsValid;      ///< 是否T+1有效
    TAPIREAL64 OrderBuyPrice;      ///< 买委托价
    TAPIREAL64 OrderSellPrice;     ///< 卖委托价
    TAPIUINT32 OrderBuyQty;        ///< 买委托量
    TAPIUINT32 OrderSellQty;       ///< 卖委托量
    TAPISTR_50 ClientBuyOrderNo;   ///< 本地委托编号
    TAPISTR_50 ClientSellOrderNo;  ///< 本地委托编号
    TAPIINT32 RefInt;              ///< 整型参考值
    TAPIREAL64 RefDouble;          ///< 浮点参考值
    TAPISTR_50 RefString;          ///< 字符串参考值
    TAPISTR_100 Remark;            ///< 备注
};

//! 客户做市商应答请求结构
struct TapAPIOrderMarketInsertRsp {
    TAPISTR_20 AccountNo;  ///< 客户资金帐号

    TAPISTR_10 ExchangeNo;                ///< 交易所编号
    TAPICommodityType CommodityType;      ///< 品种类型
    TAPISTR_10 CommodityNo;               ///< 品种编码类型
    TAPISTR_10 ContractNo;                ///< 合约
    TAPISTR_10 StrikePrice;               ///< 执行价格
    TAPICallOrPutFlagType CallOrPutFlag;  ///< 看张看跌

    TAPIOrderTypeType OrderType;      ///< 委托类型
    TAPITimeInForceType TimeInForce;  ///< 委托有效类型
    TAPIDATETIME ExpireTime;          ///< 有效日期(GTD情况下使用)
    TAPIOrderSourceType OrderSource;  ///< 委托来源

    TAPIPositionEffectType BuyPositionEffect;   ///< 买开平标志
    TAPIPositionEffectType SellPositionEffect;  ///< 卖开平标志

    TAPIREAL64 OrderBuyPrice;   ///< 买委托价
    TAPIREAL64 OrderSellPrice;  ///< 卖委托价

    TAPIUINT32 OrderBuyQty;   ///< 买委托量
    TAPIUINT32 OrderSellQty;  ///< 卖委托量

    TAPICHAR ServerFlag;     ///< 交易服务标识
    TAPISTR_20 OrderBuyNo;   ///< 买委托号
    TAPISTR_20 OrderSellNo;  ///< 卖委托号

    TAPIYNFLAG AddOneIsValid;  ///< 是否T+1有效

    TAPISTR_20 OrderMarketUserNo;  ///< 下单人
    TAPIDATETIME OrderMarketTime;  ///< 下单时间

    TAPIINT32 RefInt;      ///< 整型参考值
    TAPIREAL64 RefDouble;  ///< 浮点参考值
    TAPISTR_50 RefString;  ///< 字符串参考值

    TAPISTR_50 ClientBuyOrderNo;   ///< 买本地委托编号
    TAPISTR_50 ClientSellOrderNo;  ///< 卖本地委托编号

    TAPIUINT32 ErrorCode;  ///< 错误信息码
    TAPISTR_50 ErrorText;  ///< 错误信息

    TAPISTR_40 ClientLocalIP;  ///< 终端本地IP地址（客户端填写）
    TAPIMACTYPE ClientMac;     ///< 终端本地Mac地址（客户端填写）

    TAPISTR_40 ClientIP;  ///< 前置记录的终端IP地址（前置填写）

    TAPISTR_100 Remark;  ///< 备注
};
//! 港交所做市商双边撤单请求
struct TapAPIOrderMarketDeleteReq {
    TAPICHAR ServerFlag;
    TAPISTR_20 OrderBuyNo;   ///< 买委托号
    TAPISTR_20 OrderSellNo;  ///< 卖委托号
};
typedef TapAPIOrderMarketInsertRsp TapAPIOrderMarketDeleteRsp;

//! 订单删除请求结构

struct TapAPIOrderLocalRemoveReq {
    TAPICHAR ServerFlag;
    TAPISTR_20 OrderNo;
};

//! 订单删除应答结构
struct TapAPIOrderLocalRemoveRsp {
    TapAPIOrderLocalRemoveReq req;
    TAPISTR_40 ClientLocalIP;  // 终端本地IP地址（客户端填写）
    TAPIMACTYPE ClientMac;     // 终端本地Mac地址（客户端填写）

    TAPISTR_40 ClientIP;  // 前置记录的终端IP地址（前置填写）
};

//! 订单录入请求结构
struct TapAPIOrderLocalInputReq {
    TAPISTR_20 AccountNo;  ///< 客户资金帐号

    TAPISTR_10 ExchangeNo;                 ///< 交易所编号
    TAPICommodityType CommodityType;       ///< 品种类型
    TAPISTR_10 CommodityNo;                ///< 品种编码类型
    TAPISTR_10 ContractNo;                 ///< 合约1
    TAPISTR_10 StrikePrice;                ///< 执行价格1
    TAPICallOrPutFlagType CallOrPutFlag;   ///< 看张看跌1
    TAPISTR_10 ContractNo2;                ///< 合约2
    TAPISTR_10 StrikePrice2;               ///< 执行价格2
    TAPICallOrPutFlagType CallOrPutFlag2;  ///< 看张看跌2

    TAPIOrderTypeType OrderType;      ///< 委托类型
    TAPIOrderSourceType OrderSource;  ///< 委托来源
    TAPITimeInForceType TimeInForce;  ///< 委托有效类型
    TAPIDATETIME ExpireTime;          ///< 有效日期(GTD情况下使用)

    TAPIYNFLAG IsRiskOrder;                  ///< 是否风险报单
    TAPISideType OrderSide;                  ///< 买入卖出
    TAPIPositionEffectType PositionEffect;   ///< 开平标志1
    TAPIPositionEffectType PositionEffect2;  ///< 开平标志2
    TAPISTR_50 InquiryNo;                    ///< 询价号
    TAPIHedgeFlagType HedgeFlag;             ///< 投机保值
    TAPIREAL64 OrderPrice;                   ///< 委托价格1
    TAPIREAL64 OrderPrice2;                  ///< 委托价格2，做市商应价使用
    TAPIREAL64 StopPrice;                    ///< 触发价格
    TAPIUINT32 OrderQty;                     ///< 委托数量
    TAPIUINT32 OrderMinQty;                  ///< 最小成交量
    TAPISTR_50 OrderSystemNo;                ///< 系统号
    TAPISTR_50 OrderExchangeSystemNo;        ///< 交易所系统号

    TAPISTR_10 UpperNo;           ///< 上手号
    TAPIREAL64 OrderMatchPrice;   ///< 成交价1
    TAPIREAL64 OrderMatchPrice2;  ///< 成交价2
    TAPIUINT32 OrderMatchQty;     ///< 成交量1
    TAPIUINT32 OrderMatchQty2;    ///< 成交量2

    TAPIOrderStateType OrderState;  ///< 委托状态

    TAPIYNFLAG IsAddOne;  ///< 是否为T+1单

    TAPISTR_20 LowerAccount;  ///< 下级资金帐号
};
typedef TapAPIOrderInfo TapAPIOrderLocalInputRsp;

struct TapAPIOrderLocalModifyReq {
    TapAPIOrderLocalInputReq req;
    TAPICHAR ServerFlag;  ///< 服务器标识
    TAPISTR_20 OrderNo;   ///< 委托编码
};

typedef TapAPIOrderInfo TapAPIOrderLocalModifyRsp;

struct TapAPIOrderLocalTransferReq {
    TAPISTR_20 AccountNo;  ///< 客户资金帐号
    TAPICHAR ServerFlag;   ///< 服务器标识
    TAPISTR_20 OrderNo;    ///< 委托编码
};

typedef TapAPIOrderInfo TapAPIOrderLocalTransferRsp;

struct TapAPIFillLocalInputReq {
    TAPISTR_20 AccountNo;  ///< 客户资金帐号

    TAPISTR_10 ExchangeNo;                ///< 交易所编号
    TAPICommodityType CommodityType;      ///< 品种类型
    TAPISTR_10 CommodityNo;               ///< 品种编码类型
    TAPISTR_10 ContractNo;                ///< 合约1
    TAPISTR_10 StrikePrice;               ///< 执行价格
    TAPICallOrPutFlagType CallOrPutFlag;  ///< 看张看跌

    TAPISideType MatchSide;                 ///< 买入卖出
    TAPIPositionEffectType PositionEffect;  ///< 开平标志1
    TAPIHedgeFlagType HedgeFlag;            ///< 投机保值
    TAPIREAL64 MatchPrice;                  ///< 成交价
    TAPIUINT32 MatchQty;                    ///< 成交量

    TAPISTR_50 OrderSystemNo;         ///< 系统号
    TAPISTR_70 UpperMatchNo;          ///< 上手成交号
    TAPIDATETIME MatchDateTime;       ///< 成交时间
    TAPIDATETIME UpperMatchDateTime;  ///< 上手成交时间
    TAPISTR_10 UpperNo;               ///< 上手号

    TAPIYNFLAG IsAddOne;  ///< 是否为T+1单

    TAPISTR_10 FeeCurrencyGroup;  ///< 客户手续费币种组
    TAPISTR_10 FeeCurrency;       ///< 客户手续费币种
    TAPIREAL64 FeeValue;          ///< 手续费
    TAPIYNFLAG IsManualFee;       ///< 人工客户手续费标记

    TAPIREAL64 ClosePositionPrice;  ///< 指定价格平仓
};
typedef TapAPIFillLocalInputReq TapAPIFillLocalInputRsp;

//! 客户录单成交删除请求结构
struct TapAPIFillLocalRemoveReq {
    TAPICHAR ServerFlag;  ///< 服务器标识
    TAPISTR_20 MatchNo;   ///< 本地成交号
};
//! 客户录单成交删除应答结构
typedef TapAPIFillLocalRemoveReq TapAPIFillLocalRemoveRsp;

//! 系统交易日查询应答
struct TapAPITradingCalendarQryRsp {
    TAPIDATE CurrTradeDate;       ///< 当前交易日
    TAPIDATE LastSettlementDate;  ///< 上次结算日
    TAPIDATE PromptDate;          ///< LME到期日
    TAPIDATE LastPromptDate;      ///< 上日LME到期日
};

//! 客户现货锁定量查询请求结构
struct TapAPISpotLockQryReq {
    TAPISTR_20 AccountNo;  ///< 客户资金帐号
};
//! 客户现货锁定量查询应答结构
typedef TapAPISpotLockQryReq TapAPISpotLockQryRsp;
//! 客户现货锁定量查询数据应答结构
struct TapAPISpotLockDataRsp {
    TAPISTR_20 AccountNo;  ///< 客户资金账号

    TAPISTR_10 ExchangeNo;            ///< 交易所编号
    TAPICommodityType CommodityType;  ///< 品种类型
    TAPISTR_10 CommodityNo;           ///< 品种编码类型

    TAPIUINT32 LockQty;       ///< 锁定量
    TAPIUINT32 FrozenQty;     ///< 冻结量
    TAPIUINT32 CanUnLockQty;  ///< 可解锁量
};
//! 客户现货锁定量变更通知
typedef TapAPISpotLockDataRsp TapAPISpotLockDataNotice;

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_SETTLEFLAG	采集信息异常标识
 */
//=============================================================================
typedef TAPICHAR TapAPIAbnormalFalgType;
//! 正常
const TapAPIAbnormalFalgType TAPI_ABNORMAL_NORMAL = '0';
//! 终端信息采集为空
const TapAPIAbnormalFalgType TAPI_ABNORMAL_GATHERINFO_NONE = '1';
//! 终端采集数据加密密钥版本异常
const TapAPIAbnormalFalgType TAPI_ABNORMAL_AUTHKEYVERSION = '2';
//! 终端信息数据异常
const TapAPIAbnormalFalgType TAPI_ABNORMAL_GATHERINFO_WRONG = '3';

//! 看穿式监管采集信息_中继方式上报
struct TapAPISubmitUserLoginInfo {
    TAPISTR_20 UserNo;                  ///< 用户名
    TAPISTR_500 GatherInfo;             ///< 用户终端采集信息
    TAPISTR_40 ClientLoginIP;           ///< 用户公网IP
    TAPIUINT32 ClientLoginPort;         ///< 用户公网Port
    TAPIDATETIME ClientLoginDateTime;   ///< 用户登录时间
    TAPISTR_30 ClientAppID;             ///< 用户AppID
    TAPIUINT32 AuthKeyVersion;          ///< 用户终端信息加密密钥版本号
    TapAPIAbnormalFalgType AbnormalNo;  ///< 用户采集信息异常标识
};

//! 看穿式监管采集信息应答
struct TapAPISubmitUserLoginRspInfo {
    TAPISTR_20 UserNo;  ///< 用户名
};

//=============================================================================
/**
 *	\addtogroup G_DATATYPE_SETTLEFLAG	组合策略代码
 */
//=============================================================================
typedef TAPICHAR TapAPICombineStrategyType[10];
//! 认购牛市价差策略
const TapAPICombineStrategyType TAPI_STRATEGY_C_BULL = "CNSJC";
//! 认沽熊市价差策略
const TapAPICombineStrategyType TAPI_STRATEGY_P_BEAR = "PXSJC";
//! 认沽牛市价差策略
const TapAPICombineStrategyType TAPI_STRATEGY_P_BULL = "PNSJC";
//! 认购熊市价差策略
const TapAPICombineStrategyType TAPI_STRATEGY_C_BEAR = "CXSJC";
//! 跨式空头策略
const TapAPICombineStrategyType TAPI_STRATEGY_S_STRADDLE = "KS";
//! 宽跨式空头策略
const TapAPICombineStrategyType TAPI_STRATEGY_S_STRANGLE = "KKS";
//! 普通仓转备兑仓
const TapAPICombineStrategyType TAPI_STRATEGY_ZBD = "ZBD";
//! 备兑仓转普通仓
const TapAPICombineStrategyType TAPI_STRATEGY_ZXJ = "ZXJ";

//=============================================================================
/**
 *特殊业务委托类型
 */
//=============================================================================
typedef TAPICHAR TapAPISpecialOrderTypeType;
//! 组合策略申请
const TapAPISpecialOrderTypeType TAPI_STRATEGY_COMBINE = '1';
//! 组合策略拆分
const TapAPISpecialOrderTypeType TAPI_STRATEGY_SPLIT = '2';
//! 证券锁定
const TapAPISpecialOrderTypeType TAPI_SPOT_LOCK = '3';
//! 证券解锁
const TapAPISpecialOrderTypeType TAPI_SPOT_UNLOCK = '4';
//! 期权行权
const TapAPISpecialOrderTypeType TAPI_OPTION_EXERCISE = '5';
//! 期权组合行权
const TapAPISpecialOrderTypeType TAPI_OPTION_EXERCISE_COMBINE = '6';

//! 客户特殊业务委托请求结构
struct TapAPISpecialOrderInsertReq {
    TAPISTR_20 AccountNo;                         ///< 客户资金帐号
    TapAPISpecialOrderTypeType SpecialOrderType;  ///< 特殊业务类型
    TAPIOrderSourceType OrderSource;              ///< 委托来源
    TAPISTR_50 CombineNo;                         ///< 组合编码
    TAPIUINT32 OrderQty;                          ///< 委托数量
    TAPISTR_10 ExchangeNo;                        ///< 交易所编号
    TAPICommodityType CommodityType;              ///< 品种类型
    TAPISTR_10 CommodityNo;                       ///< 品种编码
    TAPISTR_10 ContractNo;                        ///< 合约1
    TAPISTR_10 StrikePrice;                       ///< 执行价格1
    TAPICallOrPutFlagType CallOrPutFlag;          ///< 看张看跌1
    TAPISideType OrderSide1;                      ///< 买卖方向1
    TAPIHedgeFlagType HedgeFlag1;                 ///< 投机备兑1
    TAPISTR_10 ContractNo2;                       ///< 合约2
    TAPISTR_10 StrikePrice2;                      ///< 执行价格2
    TAPICallOrPutFlagType CallOrPutFlag2;         ///< 看张看跌2
};

//! 查询特殊业务委托请求结构
struct TapAPISpecialOrderQryReq {
    TAPISTR_20 AccountNo;  ///< 客户资金帐号
    TAPISTR_20 OrderNo;    ///< 特殊业务委托编号
};
//! 客户特殊业务委托信息
struct TapAPISpecialOrderInfo {
    TAPIUINT32 SessionID;                         ///< 会话ID
    TAPIUINT32 ErrorCode;                         ///< 错误码
    TAPISTR_50 ErrorText;                         ///< 错误信息
    TAPISTR_20 AccountNo;                         ///< 客户资金帐号
    TAPICHAR ServerFlag;                          ///< 服务器标识
    TAPISTR_20 OrderNo;                           ///< 特殊业务委托编号
    TAPISTR_50 ClientOrderNo;                     ///< 客户端本地委托编号
    TapAPISpecialOrderTypeType SpecialOrderType;  ///< 特殊业务类型
    TAPIOrderSourceType OrderSource;              ///< 委托来源，默认程序单。
    TapAPICombineStrategyType CombineStrategy;    ///< 组合策略代码
    TAPISTR_50 CombineNo;                         ///< 组合编码
    TAPIUINT32 OrderQty;                          ///< 委托数量
    TAPISTR_10 ExchangeNo;                        ///< 交易所编号
    TAPICommodityType CommodityType;              ///< 品种类型
    TAPISTR_10 CommodityNo;                       ///< 品种编码
    TAPISTR_10 ContractNo;                        ///< 合约1
    TAPISTR_10 StrikePrice;                       ///< 执行价格1
    TAPICallOrPutFlagType CallOrPutFlag;          ///< 看张看跌1
    TAPISideType OrderSide1;                      ///< 买卖方向1
    TAPIUINT32 CombineQty1;                       ///< 组合数量1
    TAPIHedgeFlagType HedgeFlag1;                 ///< 投机备兑1
    TAPISTR_10 ContractNo2;                       ///< 合约2
    TAPISTR_10 StrikePrice2;                      ///< 执行价格2
    TAPICallOrPutFlagType CallOrPutFlag2;         ///< 看张看跌2
    TAPISideType OrderSide2;                      ///< 买卖方向2
    TAPIUINT32 CombineQty2;                       ///< 组合数量2
    TAPIHedgeFlagType HedgeFlag2;                 ///< 投机备兑2

    TAPISTR_50 LicenseNo;              ///< 软件授权号
    TAPISTR_40 ClientLocalIP;          ///< 终端本地IP
    TAPIMACTYPE ClientMac;             ///< 终端本地Mac地址
    TAPISTR_40 ClientIP;               ///< 终端网络地址.
    TAPIUINT32 OrderStreamID;          ///< 委托流水号
    TAPISTR_10 UpperNo;                ///< 上手号
    TAPISTR_10 UpperChannelNo;         ///< 上手通道号
    TAPISTR_20 OrderLocalNo;           ///< 网关本地号
    TAPISTR_50 OrderSystemNo;          ///< 系统号
    TAPISTR_50 OrderExchangeSystemNo;  ///< 交易所系统号
    TAPISTR_20 OrderInsertUserNo;      ///< 下单人
    TAPIDATETIME OrderInsertTime;      ///< 下单时间
    TAPIOrderStateType OrderState;     ///< 委托状态
};

//! 客户组合持仓查询请求结构
struct TapAPICombinePositionQryReq {
    TAPISTR_20 AccountNo;  ///< 客户资金帐号
};
//! 客户组合持仓信息
struct TapAPICombinePositionInfo {
    TAPISTR_20 AccountNo;  ///< 客户资金帐号

    TAPIUINT32 PositionStreamID;                ///< 组合持仓流号
    TAPICHAR ServerFlag;                        ///< 服务器标识
    TAPISTR_10 UpperNo;                         ///< 上手号
    TapAPICombineStrategyType CombineStrategy;  ///< 组合策略代码
    TAPISTR_50 CombineNo;                       ///< 组合编码
    TAPIUINT32 PositionQty;                     ///< 委托数量

    TAPISTR_10 ExchangeNo;            ///< 交易所编号
    TAPICommodityType CommodityType;  ///< 品种类型
    TAPISTR_10 CommodityNo;           ///< 品种编码

    TAPISTR_10 ContractNo;                 ///< 合约1
    TAPISTR_10 StrikePrice;                ///< 执行价格1
    TAPICallOrPutFlagType CallOrPutFlag;   ///< 看张看跌1
    TAPISideType OrderSide1;               ///< 买卖方向1
    TAPIUINT32 CombineQty1;                ///< 组合数量1
    TAPIHedgeFlagType HedgeFlag1;          ///< 投机备兑1
    TAPISTR_10 ContractNo2;                ///< 合约2
    TAPISTR_10 StrikePrice2;               ///< 执行价格2
    TAPICallOrPutFlagType CallOrPutFlag2;  ///< 看张看跌2
    TAPISideType OrderSide2;               ///< 买卖方向2
    TAPIUINT32 CombineQty2;                ///< 组合数量2
    TAPIHedgeFlagType HedgeFlag2;          ///< 投机备兑2

    TAPISTR_10 CommodityCurrencyGroup;  ///< 品种币种组
    TAPISTR_10 CommodityCurrency;       ///< 品种币种

    TAPIREAL64 AccountInitialMargin;      ///< 初始组合保证金
    TAPIREAL64 AccountMaintenanceMargin;  ///< 维持组合保证金
    TAPIREAL64 UpperInitialMargin;        ///< 上手初始组合保证金
    TAPIREAL64 UpperMaintenanceMargin;    ///< 上手维持组合保证金
};

//=============================================================================
//! 用户信任设备查询请求结构
struct TapAPIUserTrustDeviceQryReq {
};
// 用户信任设备查询应答结构
struct TapAPIUserTrustDeviceQryRsp {
    TAPISTR_20 UserNo;         ///< 登录账号
    TAPISTR_50 LicenseNo;      ///< 软件授权码
    TAPISTR_50 Mac;            ///< MAC
    TAPISTR_50 DeviceName;     ///< 设备名称
    TAPISTR_20 OperatorNo;     ///< 操作员
    TAPIDATETIME OperateTime;  ///< 操作时间
};

// 用户信任设备增加请求结构
struct TapAPIUserTrustDeviceAddReq {
};
typedef TapAPIUserTrustDeviceQryRsp TapAPIUserTrustDeviceAddRsp;

// 用户信任设备增加删除结构
struct TapAPIUserTrustDeviceDelReq {
    TAPISTR_50 LicenseNo;  ///< 软件授权码
    TAPISTR_50 Mac;        ///< MAC
};
typedef TapAPIUserTrustDeviceDelReq TapAPIUserTrustDeviceDelRsp;

//=============================================================================
// 基础IPO信息查询请求结构
struct TapAPIIPOInfoQryReq {
};
// 基础IPO信息查询应答结构
struct TapAPIIPOInfoQryRsp {
    TAPISTR_10 ExchangeNo;            ///< 市场或者交易所代码
    TAPICommodityType CommodityType;  ///< 品种类型
    TAPISTR_10 CommodityNo;           ///< 品种号
    TAPISTR_10 CurrencyGroupNo;       ///< 币种组
    TAPISTR_10 CurrencyNo;            ///< 币种
    TAPIDATETIME BeginDate;           ///< 申购开始日期
    TAPIDATETIME EndDate;             ///< 申购结束日期
    TAPIDATETIME IPODate;             ///< IPODate
    TAPIDATETIME ResultDate;          ///< 中签日
    TAPIREAL64 IPOFee;                ///< IPO手续费
    TAPIREAL64 FinancingFee;          ///< 融资手续费
    TAPIREAL64 LoanRatio;             ///< 融资利率
    TAPIUINT32 FinancingDays;         ///< 融资天数
    TAPIREAL64 MaxLoanRatio;          ///< 最高融资比例
    TAPIREAL64 MaxLoanValue;          ///< 最高融资金额
    TAPIREAL64 Price;                 ///< 认购/配售价
    TAPISTR_20 OperatorNo;
    TAPIDATETIME OperateTime;
};

//=============================================================================
// 可申购股数查询请求结构
struct TapAPIAvailableApplyQryReq {
    TAPISTR_10 ExchangeNo;            ///< 市场或者交易所代码
    TAPICommodityType CommodityType;  ///< 品种类型
    TAPISTR_10 CommodityNo;           ///< 品种号
};
// 可申购股数查询应答结构
struct TapAPIAvailableApplyQryRsp {
    TAPISTR_10 ExchangeNo;            ///< 市场或者交易所代码
    TAPICommodityType CommodityType;  ///< 品种类型
    TAPISTR_10 CommodityNo;           ///< 品种号
    TAPIUINT32 StockQty;              ///< 可申购股数
};

//=============================================================================
// 申购方式
typedef TAPICHAR TapAPIApplyTypeType;
// 现金申购
const TapAPIApplyTypeType TAPI_APPLYTYPE_CASH = '1';
// 融资申购
const TapAPIApplyTypeType TAPI_APPLYTYPE_LOAN = '2';

// 申购状态
typedef TAPICHAR TapAPIApplyStatusType;
// 已发送
const TapAPIApplyStatusType TAPI_APPLYSTAUTS_APPLY = '0';
// 申购失败
const TapAPIApplyStatusType TAPI_APPLYSTAUTS_FAIL = '1';
// 待申报
const TapAPIApplyStatusType TAPI_APPLYSTAUTS_WAIT = '2';
// 已撤销
const TapAPIApplyStatusType TAPI_APPLYSTAUTS_CANCEL = '3';
// 已申报
const TapAPIApplyStatusType TAPI_APPLYSTAUTS_DONE = '4';
// 未中签
const TapAPIApplyStatusType TAPI_APPLYSTAUTS_NOLUCKY = '5';
// 中签
const TapAPIApplyStatusType TAPI_APPLYSTAUTS_LUCKY = '6';
// 待撤销
const TapAPIApplyStatusType TAPI_APPLYSTAUTS_WAITCANCEL = '7';
//=============================================================================

// 客户IPO查询请求
struct TapAPIAccountIPOQryReq {
    TAPISTR_20 AccountNo;
};
// 客户IPO查询应答
struct TapAPIAccountIPOQryRsp {
    TAPIDATETIME EndDate;     ///< 申购结束日期
    TAPIDATETIME ResultDate;  ///< 中签日
    TAPIDATETIME IPODate;
    TAPISTR_20 AccountNo;
    TAPISTR_10 ExchangeNo;            ///< 市场或者交易所代码
    TAPICommodityType CommodityType;  ///< 品种类型
    TAPISTR_10 CommodityNo;           ///< 品种号

    TapAPIApplyTypeType ApplyType;      ///< 申购类型
    TAPIUINT32 ApplyQty;                ///< 申购数量
    TAPIREAL64 ApplyCash;               ///< 申购金额
    TAPIREAL64 LoanRatio;               ///< 融资比例
    TAPIREAL64 LoanInterest;            ///< 融资利息
    TAPIREAL64 ApplyFee;                ///< 申购手续费
    TapAPIApplyStatusType ApplyStatus;  ///< 申购状态
    TAPIUINT32 ResultQty;               ///< 中签量
    TAPISTR_20 OperatorNo;
    TAPIDATETIME OperateTime;
};

// 客户IPO增加请求
struct TapAPIAccountIPOAddReq {
    TAPISTR_20 AccountNo;
    TAPISTR_10 ExchangeNo;            ///< 市场或者交易所代码
    TAPICommodityType CommodityType;  ///< 品种类型
    TAPISTR_10 CommodityNo;           ///< 品种号

    TapAPIApplyTypeType ApplyType;  ///< 申购类型
    TAPIUINT32 ApplyQty;            ///< 申购数量
    TAPIREAL64 LoanRatio;           ///< 融资比例
};
// 客户IPO增加应答
typedef TapAPIAccountIPOQryRsp TapAPIAccountIPOAddRsp;

// 客户IPO撤销请求
struct TapAPIAccountIPOCancelReq {
    TAPISTR_20 AccountNo;
    TAPISTR_10 ExchangeNo;            ///< 市场或者交易所代码
    TAPICommodityType CommodityType;  ///< 品种类型
    TAPISTR_10 CommodityNo;           ///< 品种号
};
// 客户IPO撤销应答
typedef TapAPIAccountIPOQryRsp TapAPIAccountIPOCancelRsp;
// 客户IPO增加通知
typedef TapAPIAccountIPOQryRsp TapAPIAccountIPOAddNotice;
// 客户IPO撤销通知
typedef TapAPIAccountIPOQryRsp TapAPIAccountIPOCancelNotice;

//=============================================================================

// 证件类型
typedef char TapAPICertificateTypeType;
// 内地身份证
const TapAPICertificateTypeType TAPI_CERTIFICATE_MAINLANDID = '1';
// 军官证
const TapAPICertificateTypeType TAPI_CERTIFICATE_MILITARYCARD = '2';
// 警官证
const TapAPICertificateTypeType TAPI_CERTIFICATE_POLICECARD = '3';
// 士兵证
const TapAPICertificateTypeType TAPI_CERTIFICATE_SOLDIERID = '4';
// 户口簿
const TapAPICertificateTypeType TAPI_CERTIFICATE_ACCOUNTBOOK = '5';
// 中国护照/内地港澳通行证
const TapAPICertificateTypeType TAPI_CERTIFICATE_PASSPORT_CHINESE = '6';
// 台胞证
const TapAPICertificateTypeType TAPI_CERTIFICATE_MTPS = '7';
// 回乡证
const TapAPICertificateTypeType TAPI_CERTIFICATE_HOMERETURN = '8';
// 营业执照
const TapAPICertificateTypeType TAPI_CERTIFICATE_BUSINESSLICENSE = '9';
// 企业法人代码证书
const TapAPICertificateTypeType TAPI_CERTIFICATE_ENTERPRISELEGALPESON = 'A';
// 其他身份证
const TapAPICertificateTypeType TAPI_CERTIFICATE_OTHERID = 'B';
// 其他国家/地区护照
const TapAPICertificateTypeType TAPI_CERTIFICATE_PASSPORT_OTHER = 'C';
// 其他证件
const TapAPICertificateTypeType TAPI_CERTIFICATE_OTHER = 'x';
// 商业登记证
const TapAPICertificateTypeType TAPI_CERTIFICATE_BUSINESSREGISTRATION = 'R';

typedef char TapAPIContactContentType[201];
// 身份验证请求
struct TapAPIVerifyIdentityReq {
    TAPISTR_20 UserNo;
    TapAPICertificateTypeType CertificateType;  // 证件类型
    TAPISTR_50 CertificateNo;                   // 证件号码
    TapAPIContactContentType EMail;             // 电子邮箱账号
    TapAPIContactContentType PhoneNo;           // 手机号
};

#pragma pack(pop)
}  // namespace ITapTrade
#endif  // TAP_TRADE_API_DATA_TYPE_H